mirror of
https://github.com/SoDOff-Project/sodoff.git
synced 2026-01-13 13:41:52 -08:00
Merge branch 'master' of https://github.com/SoDOff-Project/sodoff into moderation
This commit is contained in:
commit
23cd97b4b2
@ -150,6 +150,7 @@ Almost everything:
|
|||||||
|
|
||||||
#### Implemented enough (probably)
|
#### Implemented enough (probably)
|
||||||
- GetCommonInventory (V1 - returns the viking's inventory if it is called with a viking; otherwise returns 8 viking slots)
|
- GetCommonInventory (V1 - returns the viking's inventory if it is called with a viking; otherwise returns 8 viking slots)
|
||||||
|
- GetGroupsByGroupType (only useful for Eat My Dust at the moment)
|
||||||
- GetQuestions (doesn't return all questions, probably doesn't need to)
|
- GetQuestions (doesn't return all questions, probably doesn't need to)
|
||||||
- GetRules (doesn't return any rules, probably doesn't need to)
|
- GetRules (doesn't return any rules, probably doesn't need to)
|
||||||
- GetSubscriptionInfo (always returns member, with end date 10 years from now)
|
- GetSubscriptionInfo (always returns member, with end date 10 years from now)
|
||||||
@ -168,6 +169,7 @@ Almost everything:
|
|||||||
- GetTopAchievementPointUsers (ignores type [all, buddy, hall of fame, ...] and mode [overall, monthly, weekly] properties)
|
- GetTopAchievementPointUsers (ignores type [all, buddy, hall of fame, ...] and mode [overall, monthly, weekly] properties)
|
||||||
- GetUserAchievements (used by Magic & Mythies)
|
- GetUserAchievements (used by Magic & Mythies)
|
||||||
- GetUserRoomList (room categories are not implemented, but it's enough for SoD)
|
- GetUserRoomList (room categories are not implemented, but it's enough for SoD)
|
||||||
|
- JoinGroup (for Eat My Dust only)
|
||||||
- ProcessRewardedItems (gives gems, but doesn't give gold, gold is not yet implemented)
|
- ProcessRewardedItems (gives gems, but doesn't give gold, gold is not yet implemented)
|
||||||
- SellItems (gives gems, but doesn't give gold, gold is not yet implemented)
|
- SellItems (gives gems, but doesn't give gold, gold is not yet implemented)
|
||||||
- SetUserAchievementTask (returns a real reward but still use task placeholder)
|
- SetUserAchievementTask (returns a real reward but still use task placeholder)
|
||||||
|
|||||||
@ -11,9 +11,12 @@ namespace sodoff.Controllers.Common;
|
|||||||
public class AchievementController : Controller {
|
public class AchievementController : Controller {
|
||||||
|
|
||||||
public readonly DBContext ctx;
|
public readonly DBContext ctx;
|
||||||
|
private AchievementStoreSingleton achievementStore;
|
||||||
private AchievementService achievementService;
|
private AchievementService achievementService;
|
||||||
public AchievementController(DBContext ctx, AchievementService achievementService) {
|
|
||||||
|
public AchievementController(DBContext ctx, AchievementStoreSingleton achievementStore, AchievementService achievementService) {
|
||||||
this.ctx = ctx;
|
this.ctx = ctx;
|
||||||
|
this.achievementStore = achievementStore;
|
||||||
this.achievementService = achievementService;
|
this.achievementService = achievementService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,19 +45,26 @@ public class AchievementController : Controller {
|
|||||||
public IActionResult GetAllRanks([FromForm] string apiKey) {
|
public IActionResult GetAllRanks([FromForm] string apiKey) {
|
||||||
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
||||||
if (gameVersion <= ClientVersion.Max_OldJS && (gameVersion & ClientVersion.WoJS) != 0)
|
if (gameVersion <= ClientVersion.Max_OldJS && (gameVersion & ClientVersion.WoJS) != 0)
|
||||||
return Ok(XmlUtil.ReadResourceXmlString("allranks_wojs"));
|
return Ok(XmlUtil.ReadResourceXmlString("ranks.allranks_wojs"));
|
||||||
else if (gameVersion == ClientVersion.MB)
|
if (gameVersion == ClientVersion.MB)
|
||||||
return Ok(XmlUtil.ReadResourceXmlString("allranks_mb"));
|
return Ok(XmlUtil.ReadResourceXmlString("ranks.allranks_mb"));
|
||||||
// TODO, this is a placeholder
|
return Ok(XmlUtil.ReadResourceXmlString("ranks.allranks_sod"));
|
||||||
return Ok(XmlUtil.ReadResourceXmlString("allranks"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
//[Produces("application/xml")]
|
[Produces("application/xml")]
|
||||||
[Route("AchievementWebService.asmx/GetAchievementTaskInfo")]
|
[Route("AchievementWebService.asmx/GetAchievementTaskInfo")]
|
||||||
public IActionResult GetAchievementTaskInfo() {
|
public IActionResult GetAchievementTaskInfo([FromForm] string achievementTaskIDList, [FromForm] string apiKey) {
|
||||||
// TODO
|
int[] achievementTaskIDs = XmlUtil.DeserializeXml<int[]>(achievementTaskIDList);
|
||||||
return Ok(XmlUtil.ReadResourceXmlString("achievementtaskinfo"));
|
List<AchievementTaskInfo> achievementTaskInfos = new();
|
||||||
|
foreach (int taskId in achievementTaskIDs) {
|
||||||
|
var achievementInfo = achievementStore.GetAllAchievementTaskInfo(taskId, ClientVersion.GetVersion(apiKey));
|
||||||
|
if (achievementInfo != null)
|
||||||
|
achievementTaskInfos.AddRange(achievementInfo);
|
||||||
|
}
|
||||||
|
return Ok(new ArrayOfAchievementTaskInfo {
|
||||||
|
AchievementTaskInfo = achievementTaskInfos.ToArray()
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
@ -89,7 +99,6 @@ public class AchievementController : Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AchievementPointTypes xpType = (AchievementPointTypes)type;
|
AchievementPointTypes xpType = (AchievementPointTypes)type;
|
||||||
// TODO: we allow set currencies here, do we want this?
|
|
||||||
achievementService.SetAchievementPoints(viking, xpType, value);
|
achievementService.SetAchievementPoints(viking, xpType, value);
|
||||||
ctx.SaveChanges();
|
ctx.SaveChanges();
|
||||||
return Ok("OK");
|
return Ok("OK");
|
||||||
@ -146,8 +155,8 @@ public class AchievementController : Controller {
|
|||||||
ArrayOfUserAchievementInfo arrAchievements = new ArrayOfUserAchievementInfo {
|
ArrayOfUserAchievementInfo arrAchievements = new ArrayOfUserAchievementInfo {
|
||||||
UserAchievementInfo = new UserAchievementInfo[]{
|
UserAchievementInfo = new UserAchievementInfo[]{
|
||||||
achievementService.CreateUserAchievementInfo(viking, AchievementPointTypes.PlayerXP),
|
achievementService.CreateUserAchievementInfo(viking, AchievementPointTypes.PlayerXP),
|
||||||
achievementService.CreateUserAchievementInfo(viking.Uid, 60000, AchievementPointTypes.PlayerFarmingXP), // TODO: placeholder until there is no leveling for farm XP
|
achievementService.CreateUserAchievementInfo(viking, AchievementPointTypes.PlayerFarmingXP),
|
||||||
achievementService.CreateUserAchievementInfo(viking.Uid, 20000, AchievementPointTypes.PlayerFishingXP), // TODO: placeholder until there is no leveling for fishing XP
|
achievementService.CreateUserAchievementInfo(viking, AchievementPointTypes.PlayerFishingXP),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -171,22 +180,13 @@ public class AchievementController : Controller {
|
|||||||
[Route("V2/AchievementWebService.asmx/SetUserAchievementTask")]
|
[Route("V2/AchievementWebService.asmx/SetUserAchievementTask")]
|
||||||
[DecryptRequest("achievementTaskSetRequest")]
|
[DecryptRequest("achievementTaskSetRequest")]
|
||||||
[VikingSession(UseLock=true)]
|
[VikingSession(UseLock=true)]
|
||||||
public IActionResult SetUserAchievementTask(Viking viking) {
|
public IActionResult SetUserAchievementTask(Viking viking, [FromForm] string apiKey) {
|
||||||
AchievementTaskSetRequest request = XmlUtil.DeserializeXml<AchievementTaskSetRequest>(Request.Form["achievementTaskSetRequest"]);
|
AchievementTaskSetRequest request = XmlUtil.DeserializeXml<AchievementTaskSetRequest>(Request.Form["achievementTaskSetRequest"]);
|
||||||
|
|
||||||
var response = new List<AchievementTaskSetResponse>();
|
var response = new List<AchievementTaskSetResponse>();
|
||||||
foreach (var task in request.AchievementTaskSet) {
|
foreach (var task in request.AchievementTaskSet) {
|
||||||
response.Add(
|
response.Add(
|
||||||
new AchievementTaskSetResponse {
|
achievementService.ApplyAchievementRewardsByTask(viking, task.TaskID, ClientVersion.GetVersion(apiKey))
|
||||||
Success = true,
|
|
||||||
UserMessage = true, // TODO: placeholder
|
|
||||||
AchievementName = "Placeholder Achievement", // TODO: placeholder
|
|
||||||
Level = 1, // TODO: placeholder
|
|
||||||
AchievementTaskGroupID = 1279, // TODO: placeholder
|
|
||||||
LastLevelCompleted = true, // TODO: placeholder
|
|
||||||
AchievementInfoID = 1279, // TODO: placeholder
|
|
||||||
AchievementRewards = achievementService.ApplyAchievementRewardsByTask(viking, task)
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
ctx.SaveChanges();
|
ctx.SaveChanges();
|
||||||
@ -194,6 +194,38 @@ public class AchievementController : Controller {
|
|||||||
return Ok(new ArrayOfAchievementTaskSetResponse { AchievementTaskSetResponse = response.ToArray() });
|
return Ok(new ArrayOfAchievementTaskSetResponse { AchievementTaskSetResponse = response.ToArray() });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("AchievementWebService.asmx/SetUserAchievementTask")] // used by World Of Jumpstart
|
||||||
|
[VikingSession(UseLock=true)]
|
||||||
|
public IActionResult SetUserAchievementTaskV1(Viking viking, [FromForm] int taskID, [FromForm] string apiKey) {
|
||||||
|
var response = achievementService.ApplyAchievementRewardsByTask(viking, taskID, ClientVersion.GetVersion(apiKey));
|
||||||
|
ctx.SaveChanges();
|
||||||
|
|
||||||
|
return Ok(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("AchievementWebService.asmx/GetUserAchievementTask")]
|
||||||
|
// [VikingSession]
|
||||||
|
public IActionResult GetUserAchievementTask([FromForm] string userId, [FromForm] string apiKey) {
|
||||||
|
Viking? viking = ctx.Vikings.FirstOrDefault(e => e.Uid == Guid.Parse(userId));
|
||||||
|
if (viking is null)
|
||||||
|
return Ok(new ArrayOfUserAchievementTask());
|
||||||
|
return Ok(new ArrayOfUserAchievementTask {
|
||||||
|
UserAchievementTask = achievementService.GetUserAchievementTask(viking, ClientVersion.GetVersion(apiKey))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("V2/AchievementWebService.asmx/GetUserAchievementTaskRedeemableRewards")]
|
||||||
|
// [VikingSession]
|
||||||
|
public IActionResult GetUserAchievementTaskRedeemableRewards() {
|
||||||
|
return Ok(); // TODO: this should be <UATRRS>
|
||||||
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Produces("application/xml")]
|
[Produces("application/xml")]
|
||||||
[Route("AchievementWebService.asmx/ApplyPayout")]
|
[Route("AchievementWebService.asmx/ApplyPayout")]
|
||||||
|
|||||||
@ -184,7 +184,7 @@ public class AuthenticationController : Controller {
|
|||||||
[Route("AuthenticationWebService.asmx/LoginChild")]
|
[Route("AuthenticationWebService.asmx/LoginChild")]
|
||||||
[DecryptRequest("childUserID")]
|
[DecryptRequest("childUserID")]
|
||||||
[EncryptResponse]
|
[EncryptResponse]
|
||||||
public IActionResult LoginChild([FromForm] Guid parentApiToken) {
|
public IActionResult LoginChild([FromForm] Guid parentApiToken, [FromForm] string apiKey) {
|
||||||
User? user = ctx.Sessions.FirstOrDefault(e => e.ApiToken == parentApiToken)?.User;
|
User? user = ctx.Sessions.FirstOrDefault(e => e.ApiToken == parentApiToken)?.User;
|
||||||
if (user is null) {
|
if (user is null) {
|
||||||
return Unauthorized();
|
return Unauthorized();
|
||||||
@ -197,6 +197,19 @@ public class AuthenticationController : Controller {
|
|||||||
return Unauthorized();
|
return Unauthorized();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
||||||
|
if (viking.GameVersion is null)
|
||||||
|
viking.GameVersion = gameVersion;
|
||||||
|
if (
|
||||||
|
(viking.GameVersion != gameVersion) &&
|
||||||
|
!(viking.GameVersion >= ClientVersion.Min_SoD && gameVersion >= ClientVersion.Min_SoD) &&
|
||||||
|
!(viking.GameVersion >= ClientVersion.WoJS && gameVersion >= ClientVersion.WoJS && viking.GameVersion < ClientVersion.WoJS_NewAvatar && gameVersion < ClientVersion.WoJS_NewAvatar)
|
||||||
|
)
|
||||||
|
return Unauthorized();
|
||||||
|
// do not let players log into users from other games, exceptions:
|
||||||
|
// 1) different version of SoD
|
||||||
|
// 2) WoJS with old avatar and lands
|
||||||
|
|
||||||
// Check if user is viking parent
|
// Check if user is viking parent
|
||||||
if (user != viking.User) {
|
if (user != viking.User) {
|
||||||
return Unauthorized();
|
return Unauthorized();
|
||||||
|
|||||||
@ -1037,7 +1037,7 @@ public class ContentController : Controller {
|
|||||||
|
|
||||||
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
||||||
UserMissionStateResult result = new UserMissionStateResult { Missions = new List<Mission>() };
|
UserMissionStateResult result = new UserMissionStateResult { Missions = new List<Mission>() };
|
||||||
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus != MissionStatus.Completed)) {
|
foreach (var mission in viking.MissionStates) {
|
||||||
Mission updatedMission = missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion);
|
Mission updatedMission = missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion);
|
||||||
|
|
||||||
if (mission.MissionStatus == MissionStatus.Upcoming) {
|
if (mission.MissionStatus == MissionStatus.Upcoming) {
|
||||||
|
|||||||
104
src/Controllers/Common/GroupController.cs
Normal file
104
src/Controllers/Common/GroupController.cs
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using sodoff.Attributes;
|
||||||
|
using sodoff.Model;
|
||||||
|
using sodoff.Schema;
|
||||||
|
using sodoff.Util;
|
||||||
|
|
||||||
|
namespace sodoff.Controllers.Common;
|
||||||
|
public class GroupController : Controller {
|
||||||
|
public static readonly Schema.Group EMD_Dragons = new Schema.Group {
|
||||||
|
GroupID = "8e68214a-c801-4759-8461-d01f28484134",
|
||||||
|
Name = "Dragons",
|
||||||
|
Color = "234,57,23",
|
||||||
|
Logo = "RS_DATA/Content/PlayerData/EMD/IcoEMDTeamDragons.png"
|
||||||
|
};
|
||||||
|
public static readonly Schema.Group EMD_Scorpions = new Schema.Group {
|
||||||
|
GroupID = "db0aa225-2f0e-424c-83a7-73783fe63fef",
|
||||||
|
Name = "Scorpions",
|
||||||
|
Color = "120,183,53",
|
||||||
|
Logo = "RS_DATA/Content/PlayerData/EMD/IcoEMDTeamScorpions.png"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
private readonly DBContext ctx;
|
||||||
|
|
||||||
|
public GroupController(DBContext ctx) {
|
||||||
|
this.ctx = ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("GroupWebService.asmx/JoinGroup")]
|
||||||
|
[VikingSession]
|
||||||
|
public IActionResult JoinGroup(Viking viking, [FromForm] string apiKey, [FromForm] string groupID) {
|
||||||
|
AddEMDGroups();
|
||||||
|
uint version = ClientVersion.GetVersion(apiKey);
|
||||||
|
|
||||||
|
// Only implemented for EMD so far.
|
||||||
|
if (version == ClientVersion.EMD) {
|
||||||
|
if (viking.Groups.Any(g => {
|
||||||
|
// Check for loyalty.
|
||||||
|
string id = g.GroupID.ToString();
|
||||||
|
return id == EMD_Dragons.GroupID || id == EMD_Scorpions.GroupID;
|
||||||
|
})) {
|
||||||
|
return Ok(new JoinGroupResult { GroupStatus = GroupMembershipStatus.ALREADY_MEMBER });
|
||||||
|
}
|
||||||
|
groupID = groupID.ToUpper();
|
||||||
|
Model.Group? group = ctx.Groups.FirstOrDefault(g => g.GroupID.ToString() == groupID);
|
||||||
|
if (group != null) {
|
||||||
|
group.Vikings.Add(viking);
|
||||||
|
ctx.SaveChanges();
|
||||||
|
return Ok(new JoinGroupResult { GroupStatus = GroupMembershipStatus.APPROVED });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Ok(new JoinGroupResult { GroupStatus = GroupMembershipStatus.REJECTED });
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("GroupWebService.asmx/GetGroupsByGroupType")]
|
||||||
|
[VikingSession]
|
||||||
|
public Schema.Group[] GetGroupsByGroupType([FromForm] string apiKey, [FromForm] string groupType) {
|
||||||
|
AddEMDGroups();
|
||||||
|
List<Schema.Group> groups = new List<Schema.Group>();
|
||||||
|
foreach (Model.Group group in ctx.Groups) {
|
||||||
|
if (group.ApiKey == apiKey && group.Type.ToString() == groupType) groups.Add(new Schema.Group {
|
||||||
|
GroupID = group.GroupID.ToString(),
|
||||||
|
Name = group.Name,
|
||||||
|
Color = group.Color,
|
||||||
|
Logo = group.Logo,
|
||||||
|
Type = group.Type
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return groups.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddEMDGroups() {
|
||||||
|
bool changed = false;
|
||||||
|
Guid DragonString = new Guid(EMD_Dragons.GroupID);
|
||||||
|
Guid ScorpionString = new Guid(EMD_Scorpions.GroupID);
|
||||||
|
if (!ctx.Groups.Any(g => g.GroupID == DragonString)) {
|
||||||
|
ctx.Groups.Add(new Model.Group {
|
||||||
|
GroupID = DragonString,
|
||||||
|
Name = EMD_Dragons.Name,
|
||||||
|
Color = EMD_Dragons.Color,
|
||||||
|
Logo = EMD_Dragons.Logo,
|
||||||
|
Type = GroupType.System,
|
||||||
|
ApiKey = "dd602cf1-cc98-4738-9a0a-56dde3026947"
|
||||||
|
});
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (!ctx.Groups.Any(g => g.GroupID == ScorpionString)) {
|
||||||
|
ctx.Groups.Add(new Model.Group {
|
||||||
|
GroupID = ScorpionString,
|
||||||
|
Name = EMD_Scorpions.Name,
|
||||||
|
Color = EMD_Scorpions.Color,
|
||||||
|
Logo = EMD_Scorpions.Logo,
|
||||||
|
Type = GroupType.System,
|
||||||
|
ApiKey = "dd602cf1-cc98-4738-9a0a-56dde3026947"
|
||||||
|
});
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (changed) ctx.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -59,9 +59,9 @@ public class ItemStoreController : Controller {
|
|||||||
public IActionResult GetRankAttributeData([FromForm] string apiKey) {
|
public IActionResult GetRankAttributeData([FromForm] string apiKey) {
|
||||||
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
uint gameVersion = ClientVersion.GetVersion(apiKey);
|
||||||
if (gameVersion == ClientVersion.MB)
|
if (gameVersion == ClientVersion.MB)
|
||||||
return Ok(XmlUtil.ReadResourceXmlString("rankattrib_mb"));
|
return Ok(XmlUtil.ReadResourceXmlString("ranks.rankattrib_mb"));
|
||||||
// TODO, this is a placeholder
|
// TODO, this is a placeholder
|
||||||
return Ok(XmlUtil.ReadResourceXmlString("rankattrib"));
|
return Ok(XmlUtil.ReadResourceXmlString("ranks.rankattrib"));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Route("ItemStoreWebService.asmx/GetAssetVersions")]
|
[Route("ItemStoreWebService.asmx/GetAssetVersions")]
|
||||||
|
|||||||
@ -152,6 +152,22 @@ public class ProfileController : Controller {
|
|||||||
|
|
||||||
UserGameCurrency currency = achievementService.GetUserCurrency(viking);
|
UserGameCurrency currency = achievementService.GetUserCurrency(viking);
|
||||||
|
|
||||||
|
ICollection<Model.Group> groups = viking.Groups;
|
||||||
|
|
||||||
|
UserProfileGroupData[] groupData = new UserProfileGroupData[groups.Count];
|
||||||
|
int i = 0;
|
||||||
|
foreach (Model.Group group in groups) {
|
||||||
|
groupData[i] = new UserProfileGroupData {
|
||||||
|
GroupID = group.GroupID.ToString(),
|
||||||
|
Name = group.Name,
|
||||||
|
Color = group.Color,
|
||||||
|
Logo = group.Logo,
|
||||||
|
TypeID = (int)group.Type,
|
||||||
|
RoleID = 0
|
||||||
|
};
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
return new UserProfileData {
|
return new UserProfileData {
|
||||||
ID = viking.Uid.ToString(),
|
ID = viking.Uid.ToString(),
|
||||||
AvatarInfo = avatar,
|
AvatarInfo = avatar,
|
||||||
@ -169,7 +185,8 @@ public class ProfileController : Controller {
|
|||||||
ProfileTags = new List<ProfileTag>(),
|
ProfileTags = new List<ProfileTag>(),
|
||||||
UserID = viking.Uid,
|
UserID = viking.Uid,
|
||||||
UserProfileTagID = 1
|
UserProfileTagID = 1
|
||||||
}
|
},
|
||||||
|
Groups = groupData
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using sodoff.Attributes;
|
||||||
using sodoff.Model;
|
using sodoff.Model;
|
||||||
using sodoff.Schema;
|
using sodoff.Schema;
|
||||||
using sodoff.Util;
|
using sodoff.Util;
|
||||||
@ -8,6 +9,12 @@ namespace sodoff.Controllers.Common;
|
|||||||
|
|
||||||
public class RatingController : Controller
|
public class RatingController : Controller
|
||||||
{
|
{
|
||||||
|
private readonly DBContext ctx;
|
||||||
|
|
||||||
|
public RatingController(DBContext ctx) {
|
||||||
|
this.ctx = ctx;
|
||||||
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Produces("application/xml")]
|
[Produces("application/xml")]
|
||||||
[Route("MissionWebService.asmx/GetPayout")] // used by World Of Jumpstart
|
[Route("MissionWebService.asmx/GetPayout")] // used by World Of Jumpstart
|
||||||
@ -79,6 +86,30 @@ public class RatingController : Controller
|
|||||||
|
|
||||||
case string x when x.StartsWith("MSCnDucky"):
|
case string x when x.StartsWith("MSCnDucky"):
|
||||||
return Ok(60);
|
return Ok(60);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("Calendar"):
|
||||||
|
return Ok(points / 40);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("PearlPush"):
|
||||||
|
return Ok(points / 20);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("FLLetItRide"):
|
||||||
|
return Ok(points <= 28 ? 2 : 5);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("FLLetItRideMastered"):
|
||||||
|
return Ok(points <= 15 ? 4 :
|
||||||
|
points <= 25 ? 6 :
|
||||||
|
points <= 35 ? 9 :
|
||||||
|
points <= 45 ? 12 : 15);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("FashionShowWin"):
|
||||||
|
return Ok(points >= 1 ? 20 : 0);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("FashionShowLose"):
|
||||||
|
return Ok(points >= 0 ? 10 : 0);
|
||||||
|
|
||||||
|
case string x when x.StartsWith("FashionShowTie"):
|
||||||
|
return Ok(points >= 2 ? 15 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ok(points / (350 / 3));
|
return Ok(points / (350 / 3));
|
||||||
@ -103,4 +134,161 @@ public class RatingController : Controller
|
|||||||
return Ok(5);
|
return Ok(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method is the only thing that adds ratings.
|
||||||
|
private RatingInfo SetRating(Viking viking, int category, int? eID, string? uID, int value) {
|
||||||
|
RatingRank? rank;
|
||||||
|
Rating? rating = viking.Ratings.FirstOrDefault(
|
||||||
|
r => category == r.Rank.CategoryID && r.Rank.RatedEntityID == eID && r.Rank.RatedUserID == uID
|
||||||
|
);
|
||||||
|
if (rating == null) {
|
||||||
|
rank = ctx.RatingRanks.FirstOrDefault(rr => rr.CategoryID == category && rr.RatedEntityID == eID && rr.RatedUserID == uID);
|
||||||
|
if (rank == null) {
|
||||||
|
rank = new RatingRank {
|
||||||
|
CategoryID = category,
|
||||||
|
RatedEntityID = eID,
|
||||||
|
RatedUserID = uID,
|
||||||
|
Rank = 0,
|
||||||
|
Ratings = new List<Rating>()
|
||||||
|
};
|
||||||
|
ctx.RatingRanks.Add(rank);
|
||||||
|
}
|
||||||
|
rating = new Rating {
|
||||||
|
VikingId = viking.Id,
|
||||||
|
Rank = rank
|
||||||
|
};
|
||||||
|
ctx.Ratings.Add(rating);
|
||||||
|
} else {
|
||||||
|
rank = rating.Rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
rating.Value = value;
|
||||||
|
rank.RatingAverage = 0;
|
||||||
|
foreach (Rating r in rank.Ratings) {
|
||||||
|
rank.RatingAverage += (float)((decimal)r.Value / (decimal)rank.Ratings.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eID != -1 || uID != null) { // do not sort "single item" (eID == -1 and no uID) category
|
||||||
|
RatingRank[] ranks = ctx.RatingRanks
|
||||||
|
.Where(rr => rr != rank && rr.CategoryID == category) // Only rank by category.
|
||||||
|
.OrderBy(rr => rr.Rank)
|
||||||
|
.ToArray();
|
||||||
|
bool resortOthers = false;
|
||||||
|
rank.Rank = 1; // Start here, work way down.
|
||||||
|
for (int i=0;i<ranks.Length;i++) {
|
||||||
|
if (!resortOthers && ranks[i].RatingAverage < rank.RatingAverage) {
|
||||||
|
rank.Rank = i+1;
|
||||||
|
resortOthers = true;
|
||||||
|
}
|
||||||
|
if (resortOthers) ranks[i].Rank = i+2;
|
||||||
|
else ranks[i].Rank = i+1;
|
||||||
|
}
|
||||||
|
if (!resortOthers) rank.Rank = ranks.Length+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
rating.Date = DateTime.UtcNow;
|
||||||
|
rank.UpdateDate = rating.Date;
|
||||||
|
ctx.SaveChanges();
|
||||||
|
|
||||||
|
return new RatingInfo() {
|
||||||
|
Id = rating.Id,
|
||||||
|
OwnerUid = viking.Uid,
|
||||||
|
CategoryID = category,
|
||||||
|
RatedEntityID = eID,
|
||||||
|
Value = value,
|
||||||
|
Date = rating.Date
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/SetRating")]
|
||||||
|
[VikingSession]
|
||||||
|
public IActionResult SetRating(Viking viking, [FromForm] int categoryID, [FromForm] int ratedEntityID, [FromForm] int ratedValue) {
|
||||||
|
return Ok(SetRating(viking, categoryID, ratedEntityID, null, ratedValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/SetUserRating")]
|
||||||
|
[VikingSession]
|
||||||
|
public IActionResult SetUserRating(Viking viking, [FromForm] int categoryID, [FromForm] string ratedUserID, [FromForm] int ratedValue) {
|
||||||
|
return Ok(SetRating(viking, categoryID, null, ratedUserID, ratedValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/GetRatingByRatedEntity")]
|
||||||
|
[VikingSession]
|
||||||
|
public RatingInfo[] GetRatingByRatedEntity(Viking viking, [FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
||||||
|
return ctx.Ratings
|
||||||
|
.Where(r => r.Viking == viking && r.Rank.CategoryID == categoryID && r.Rank.RatedEntityID == ratedEntityID && r.Rank.RatedUserID == null)
|
||||||
|
.Select(r => new RatingInfo {
|
||||||
|
Id = r.Id,
|
||||||
|
OwnerUid = r.Viking.Uid,
|
||||||
|
CategoryID = r.Rank.CategoryID,
|
||||||
|
RatedEntityID = r.Rank.RatedEntityID,
|
||||||
|
Value = r.Value,
|
||||||
|
Date = r.Date
|
||||||
|
}
|
||||||
|
).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/GetTopRatedByCategoryID")]
|
||||||
|
public RatingRankInfo[] GetTopRatedByCategoryID([FromForm] int categoryID, [FromForm] int numberOfRecord) {
|
||||||
|
return ctx.RatingRanks
|
||||||
|
.Where(rr => categoryID == rr.CategoryID)
|
||||||
|
.Take(numberOfRecord)
|
||||||
|
.Select(rr => new RatingRankInfo(rr))
|
||||||
|
.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/GetTopRatedUserByCategoryID")]
|
||||||
|
public IActionResult GetTopRatedUserByCategoryID([FromForm] int categoryID, [FromForm] int numberOfRecord) {
|
||||||
|
return Ok(new ArrayOfUserRatingRankInfo {
|
||||||
|
UserRatingRankInfo = ctx.RatingRanks
|
||||||
|
.Where(rr => rr.RatedUserID != null && (categoryID == rr.CategoryID
|
||||||
|
|| (categoryID == 4 && rr.CategoryID == 5) // The party board searches for 4 but the pod rating is set in 5.
|
||||||
|
))
|
||||||
|
.OrderBy(rr => rr.Rank)
|
||||||
|
.Take(numberOfRecord)
|
||||||
|
.Select(rr => new UserRatingRankInfo { RankInfo = new RatingRankInfo(rr), RatedUserID = new Guid(rr.RatedUserID) })
|
||||||
|
.ToArray()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/GetEntityRatedRank")]
|
||||||
|
public IActionResult GetEntityRatedRank([FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
||||||
|
// TODO: Add a shortcut here for shipwreck lagoon tracks.
|
||||||
|
RatingRank? rank = ctx.RatingRanks.FirstOrDefault(rr => categoryID == rr.CategoryID && rr.RatedEntityID == ratedEntityID);
|
||||||
|
if (rank == null) return Ok();
|
||||||
|
return Ok(new RatingRankInfo(rank));
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/GetRatingForRatedUser")]
|
||||||
|
[VikingSession]
|
||||||
|
public IActionResult GetRatingForRatedUser(Viking viking, [FromForm] int categoryID, [FromForm] string ratedUserID) {
|
||||||
|
Rating? rating = ctx.Ratings.FirstOrDefault(
|
||||||
|
r => r.Viking == viking && categoryID == r.Rank.CategoryID && r.Rank.RatedEntityID == null && r.Rank.RatedUserID == ratedUserID
|
||||||
|
);
|
||||||
|
return Ok(rating?.Value ?? 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("RatingWebService.asmx/GetRatingForRatedEntity")]
|
||||||
|
[VikingSession]
|
||||||
|
public IActionResult GetRatingForRatedEntity(Viking viking, [FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
||||||
|
Rating? rating = ctx.Ratings.FirstOrDefault(
|
||||||
|
r => r.Viking == viking && categoryID == r.Rank.CategoryID && r.Rank.RatedEntityID == ratedEntityID && r.Rank.RatedUserID == null
|
||||||
|
);
|
||||||
|
return Ok(rating?.Value ?? 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
src/Model/AchievementTaskState.cs
Normal file
15
src/Model/AchievementTaskState.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace sodoff.Model;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(TaskId), nameof(VikingId))]
|
||||||
|
public class AchievementTaskState {
|
||||||
|
public int VikingId { get; set; }
|
||||||
|
|
||||||
|
public int TaskId { get; set; }
|
||||||
|
|
||||||
|
public int Points { get; set; }
|
||||||
|
|
||||||
|
public virtual Viking? Viking { get; set; }
|
||||||
|
}
|
||||||
@ -25,7 +25,13 @@ public class DBContext : DbContext {
|
|||||||
public DbSet<Party> Parties { get; set; } = null!;
|
public DbSet<Party> Parties { get; set; } = null!;
|
||||||
public DbSet<Neighborhood> Neighborhoods { get; set; } = null!;
|
public DbSet<Neighborhood> Neighborhoods { get; set; } = null!;
|
||||||
// we had a brief debate on whether it's neighborhoods or neighborheed
|
// we had a brief debate on whether it's neighborhoods or neighborheed
|
||||||
|
<<<<<<< HEAD
|
||||||
public DbSet<UserBan> UserBans { get; set; } = null!;
|
public DbSet<UserBan> UserBans { get; set; } = null!;
|
||||||
|
=======
|
||||||
|
public DbSet<Group> Groups { get; set; } = null!;
|
||||||
|
public DbSet<Rating> Ratings { get; set; } = null!;
|
||||||
|
public DbSet<RatingRank> RatingRanks { get; set; } = null!;
|
||||||
|
>>>>>>> 13df822608c41690c6744ae8c594368ae1f684b5
|
||||||
|
|
||||||
private readonly IOptions<ApiServerConfig> config;
|
private readonly IOptions<ApiServerConfig> config;
|
||||||
|
|
||||||
@ -115,6 +121,9 @@ public class DBContext : DbContext {
|
|||||||
builder.Entity<Viking>().HasMany(v => v.TaskStatuses)
|
builder.Entity<Viking>().HasMany(v => v.TaskStatuses)
|
||||||
.WithOne(e => e.Viking);
|
.WithOne(e => e.Viking);
|
||||||
|
|
||||||
|
builder.Entity<Viking>().HasMany(v => v.AchievementTaskStates)
|
||||||
|
.WithOne(e => e.Viking);
|
||||||
|
|
||||||
builder.Entity<Viking>().HasOne(v => v.SelectedDragon)
|
builder.Entity<Viking>().HasOne(v => v.SelectedDragon)
|
||||||
.WithOne()
|
.WithOne()
|
||||||
.HasForeignKey<Viking>(e => e.SelectedDragonId);
|
.HasForeignKey<Viking>(e => e.SelectedDragonId);
|
||||||
@ -137,6 +146,12 @@ public class DBContext : DbContext {
|
|||||||
builder.Entity<Viking>().HasOne(v => v.Neighborhood)
|
builder.Entity<Viking>().HasOne(v => v.Neighborhood)
|
||||||
.WithOne(e => e.Viking);
|
.WithOne(e => e.Viking);
|
||||||
|
|
||||||
|
builder.Entity<Viking>().HasMany(v => v.Groups)
|
||||||
|
.WithMany(e => e.Vikings);
|
||||||
|
|
||||||
|
builder.Entity<Viking>().HasMany(v => v.Ratings)
|
||||||
|
.WithOne(r => r.Viking);
|
||||||
|
|
||||||
// Dragons
|
// Dragons
|
||||||
builder.Entity<Dragon>().HasOne(d => d.Viking)
|
builder.Entity<Dragon>().HasOne(d => d.Viking)
|
||||||
.WithMany(e => e.Dragons)
|
.WithMany(e => e.Dragons)
|
||||||
@ -219,6 +234,10 @@ public class DBContext : DbContext {
|
|||||||
.WithMany(e => e.MissionStates)
|
.WithMany(e => e.MissionStates)
|
||||||
.HasForeignKey(e => e.VikingId);
|
.HasForeignKey(e => e.VikingId);
|
||||||
|
|
||||||
|
builder.Entity<AchievementTaskState>().HasOne(m => m.Viking)
|
||||||
|
.WithMany(e => e.AchievementTaskStates)
|
||||||
|
.HasForeignKey(e => e.VikingId);
|
||||||
|
|
||||||
builder.Entity<AchievementPoints>().HasKey(e => new { e.VikingId, e.Type });
|
builder.Entity<AchievementPoints>().HasKey(e => new { e.VikingId, e.Type });
|
||||||
|
|
||||||
builder.Entity<AchievementPoints>()
|
builder.Entity<AchievementPoints>()
|
||||||
@ -257,5 +276,21 @@ public class DBContext : DbContext {
|
|||||||
builder.Entity<UserBan>().HasOne(r => r.User)
|
builder.Entity<UserBan>().HasOne(r => r.User)
|
||||||
.WithMany(e => e.Bans)
|
.WithMany(e => e.Bans)
|
||||||
.HasForeignKey(e => e.UserId);
|
.HasForeignKey(e => e.UserId);
|
||||||
|
|
||||||
|
// Groups
|
||||||
|
builder.Entity<Group>().HasMany(r => r.Vikings)
|
||||||
|
.WithMany(e => e.Groups);
|
||||||
|
|
||||||
|
// Rating
|
||||||
|
builder.Entity<Rating>().HasOne(r => r.Viking)
|
||||||
|
.WithMany(v => v.Ratings)
|
||||||
|
.HasForeignKey(r => r.VikingId);
|
||||||
|
|
||||||
|
builder.Entity<Rating>().HasOne(r => r.Rank)
|
||||||
|
.WithMany(rr => rr.Ratings)
|
||||||
|
.HasForeignKey(r => r.RankId);
|
||||||
|
|
||||||
|
builder.Entity<RatingRank>().HasMany(rr => rr.Ratings)
|
||||||
|
.WithOne(r => r.Rank);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
25
src/Model/Group.cs
Normal file
25
src/Model/Group.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using sodoff.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace sodoff.Model;
|
||||||
|
|
||||||
|
// Implementation for EMD, add whatever else if needed
|
||||||
|
public class Group {
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public Guid GroupID { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public GroupType Type { get; set; }
|
||||||
|
|
||||||
|
public string Color { get; set; }
|
||||||
|
|
||||||
|
public string Logo { get; set; }
|
||||||
|
|
||||||
|
public string ApiKey { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Viking> Vikings { get; set; } = null!;
|
||||||
|
}
|
||||||
17
src/Model/Rating.cs
Normal file
17
src/Model/Rating.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace sodoff.Model;
|
||||||
|
|
||||||
|
public class Rating {
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public int VikingId { get; set; }
|
||||||
|
public int RankId { get; set; }
|
||||||
|
|
||||||
|
public int Value { get; set; }
|
||||||
|
public DateTime Date { get; set; }
|
||||||
|
|
||||||
|
public virtual Viking Viking { get; set; }
|
||||||
|
public virtual RatingRank Rank { get; set; }
|
||||||
|
}
|
||||||
18
src/Model/RatingRank.cs
Normal file
18
src/Model/RatingRank.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace sodoff.Model;
|
||||||
|
|
||||||
|
public class RatingRank {
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public int CategoryID { get; set; }
|
||||||
|
public int? RatedEntityID { get; set; }
|
||||||
|
public string? RatedUserID { get; set; }
|
||||||
|
|
||||||
|
public int Rank { get; set; }
|
||||||
|
public float RatingAverage { get; set; } // On a scale of 1-5
|
||||||
|
public DateTime UpdateDate { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Rating> Ratings { get; set; } = null!;
|
||||||
|
}
|
||||||
@ -27,6 +27,7 @@ public class Viking {
|
|||||||
public virtual ICollection<Image> Images { get; set; } = null!;
|
public virtual ICollection<Image> Images { get; set; } = null!;
|
||||||
public virtual ICollection<MissionState> MissionStates { get; set; } = null!;
|
public virtual ICollection<MissionState> MissionStates { get; set; } = null!;
|
||||||
public virtual ICollection<TaskStatus> TaskStatuses { get; set; } = null!;
|
public virtual ICollection<TaskStatus> TaskStatuses { get; set; } = null!;
|
||||||
|
public virtual ICollection<AchievementTaskState> AchievementTaskStates { get; set; } = null!;
|
||||||
public virtual ICollection<Room> Rooms { get; set; } = null!;
|
public virtual ICollection<Room> Rooms { get; set; } = null!;
|
||||||
public virtual ICollection<SceneData> SceneData { get; set; } = null!;
|
public virtual ICollection<SceneData> SceneData { get; set; } = null!;
|
||||||
public virtual ICollection<AchievementPoints> AchievementPoints { get; set; } = null!;
|
public virtual ICollection<AchievementPoints> AchievementPoints { get; set; } = null!;
|
||||||
@ -38,9 +39,12 @@ public class Viking {
|
|||||||
public virtual ICollection<Party> Parties { get; set; } = null!;
|
public virtual ICollection<Party> Parties { get; set; } = null!;
|
||||||
public virtual ICollection<MMORole> MMORoles { get; set; } = null!;
|
public virtual ICollection<MMORole> MMORoles { get; set; } = null!;
|
||||||
public virtual Neighborhood? Neighborhood { get; set; } = null!;
|
public virtual Neighborhood? Neighborhood { get; set; } = null!;
|
||||||
|
public virtual ICollection<Group> Groups { get; set; } = null!;
|
||||||
|
public virtual ICollection<Rating> Ratings { get; set; } = null!;
|
||||||
public virtual Dragon? SelectedDragon { get; set; }
|
public virtual Dragon? SelectedDragon { get; set; }
|
||||||
|
|
||||||
public DateTime? CreationDate { get; set; }
|
public DateTime? CreationDate { get; set; }
|
||||||
public DateTime? BirthDate { get; set; }
|
public DateTime? BirthDate { get; set; }
|
||||||
public Gender? Gender { get; set; }
|
public Gender? Gender { get; set; }
|
||||||
|
public uint? GameVersion { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
6599
src/Resources/achievements/achievementtaskinfo_emd.xml
Normal file
6599
src/Resources/achievements/achievementtaskinfo_emd.xml
Normal file
File diff suppressed because it is too large
Load Diff
17710
src/Resources/achievements/achievementtaskinfo_mam.xml
Normal file
17710
src/Resources/achievements/achievementtaskinfo_mam.xml
Normal file
File diff suppressed because it is too large
Load Diff
17943
src/Resources/achievements/achievementtaskinfo_mb.xml
Normal file
17943
src/Resources/achievements/achievementtaskinfo_mb.xml
Normal file
File diff suppressed because it is too large
Load Diff
32864
src/Resources/achievements/achievementtaskinfo_sod.xml
Normal file
32864
src/Resources/achievements/achievementtaskinfo_sod.xml
Normal file
File diff suppressed because it is too large
Load Diff
6767
src/Resources/achievements/achievementtaskinfo_ss.xml
Normal file
6767
src/Resources/achievements/achievementtaskinfo_ss.xml
Normal file
File diff suppressed because it is too large
Load Diff
16723
src/Resources/achievements/achievementtaskinfo_wojs.xml
Normal file
16723
src/Resources/achievements/achievementtaskinfo_wojs.xml
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,843 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<ArrayOfAchievementTaskInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://api.jumpstart.com/">
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12418</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>1</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>50</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12419</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>2</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>100</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12420</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>3</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>150</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12421</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>4</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>200</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12422</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>5</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>300</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12423</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>6</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>400</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12424</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>7</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12425</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>8</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>600</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12426</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>9</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>700</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12427</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>10</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>800</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12428</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>11</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>900</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12429</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>12</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>1000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12430</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>13</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>1500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12431</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>14</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>2000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12432</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>15</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>2500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12433</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>16</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>3000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12434</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>17</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>3500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12435</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>18</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>4000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12436</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>19</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>4500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12437</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>20</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>5000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12438</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>21</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>5500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12439</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>22</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>6000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12440</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>23</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>6500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12441</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>24</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>7000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12442</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>25</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>7500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12443</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>26</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>8000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12444</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>27</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>8500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12445</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>28</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>9000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12446</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>29</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>9500</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12447</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>30</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>10000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12448</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>31</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>11000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12449</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>32</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>12000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12450</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>33</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>13000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12451</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>34</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>14000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12452</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>35</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>15000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12453</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>36</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>16000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12454</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>37</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>17000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12455</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>38</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>18000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12456</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>39</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>19000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
<AchievementTaskInfo>
|
|
||||||
<AchievementInfoID>12457</AchievementInfoID>
|
|
||||||
<AchievementTaskID>2471</AchievementTaskID>
|
|
||||||
<AchievementTaskGroupID>2418</AchievementTaskGroupID>
|
|
||||||
<AchievementTaskGroupName>Thawfest 2023 Event Rewards</AchievementTaskGroupName>
|
|
||||||
<Level>40</Level>
|
|
||||||
<MessageID>0</MessageID>
|
|
||||||
<PointValue>20000</PointValue>
|
|
||||||
<Reproducible>false</Reproducible>
|
|
||||||
<AllowNonMembers>true</AllowNonMembers>
|
|
||||||
<Distinct>false</Distinct>
|
|
||||||
<ProductGroupID>9</ProductGroupID>
|
|
||||||
<TaskEvent_Points>1</TaskEvent_Points>
|
|
||||||
<Cumulative>true</Cumulative>
|
|
||||||
<PreredeemMessageID>0</PreredeemMessageID>
|
|
||||||
<ValidityFromDate>2023-02-01T00:00:00</ValidityFromDate>
|
|
||||||
<ValidityToDate>2023-06-07T19:00:00</ValidityToDate>
|
|
||||||
<isBeyondLevelAllowed>false</isBeyondLevelAllowed>
|
|
||||||
<VisibilityFromDate>2023-02-01T00:00:00</VisibilityFromDate>
|
|
||||||
<VisibilityToDate>2023-06-07T19:00:00</VisibilityToDate>
|
|
||||||
</AchievementTaskInfo>
|
|
||||||
</ArrayOfAchievementTaskInfo>
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
<?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>
|
|
||||||
409
src/Resources/missions/defaultmissionlist_mam.xml
Normal file
409
src/Resources/missions/defaultmissionlist_mam.xml
Normal file
@ -0,0 +1,409 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<DefaultMissions>
|
||||||
|
<!-- list of default mission for Magic and Mythies -->
|
||||||
|
<Active>
|
||||||
|
<id>2290</id>
|
||||||
|
</Active>
|
||||||
|
<Upcoming>
|
||||||
|
<id>1739</id>
|
||||||
|
<id>1750</id>
|
||||||
|
<id>1751</id>
|
||||||
|
<id>1752</id>
|
||||||
|
<id>1753</id>
|
||||||
|
<id>1754</id>
|
||||||
|
<id>1756</id>
|
||||||
|
<id>1757</id>
|
||||||
|
<id>1761</id>
|
||||||
|
<id>1763</id>
|
||||||
|
<id>1764</id>
|
||||||
|
<id>1766</id>
|
||||||
|
<id>1767</id>
|
||||||
|
<id>1768</id>
|
||||||
|
<id>1770</id>
|
||||||
|
<id>1772</id>
|
||||||
|
<id>1773</id>
|
||||||
|
<id>1776</id>
|
||||||
|
<id>1792</id>
|
||||||
|
<id>1793</id>
|
||||||
|
<id>1795</id>
|
||||||
|
<id>1798</id>
|
||||||
|
<id>1799</id>
|
||||||
|
<id>1800</id>
|
||||||
|
<id>1803</id>
|
||||||
|
<id>1804</id>
|
||||||
|
<id>1805</id>
|
||||||
|
<id>1807</id>
|
||||||
|
<id>1808</id>
|
||||||
|
<id>1809</id>
|
||||||
|
<id>1811</id>
|
||||||
|
<id>1814</id>
|
||||||
|
<id>1816</id>
|
||||||
|
<id>1820</id>
|
||||||
|
<id>1825</id>
|
||||||
|
<id>1826</id>
|
||||||
|
<id>1827</id>
|
||||||
|
<id>1829</id>
|
||||||
|
<id>1830</id>
|
||||||
|
<id>1831</id>
|
||||||
|
<id>1832</id>
|
||||||
|
<id>1833</id>
|
||||||
|
<id>1834</id>
|
||||||
|
<id>1835</id>
|
||||||
|
<id>1836</id>
|
||||||
|
<id>1837</id>
|
||||||
|
<id>1838</id>
|
||||||
|
<id>1839</id>
|
||||||
|
<id>1840</id>
|
||||||
|
<id>1841</id>
|
||||||
|
<id>1842</id>
|
||||||
|
<id>1843</id>
|
||||||
|
<id>1844</id>
|
||||||
|
<id>1845</id>
|
||||||
|
<id>1846</id>
|
||||||
|
<id>1847</id>
|
||||||
|
<id>1848</id>
|
||||||
|
<id>1849</id>
|
||||||
|
<id>1850</id>
|
||||||
|
<id>1851</id>
|
||||||
|
<id>1852</id>
|
||||||
|
<id>1853</id>
|
||||||
|
<id>1854</id>
|
||||||
|
<id>1855</id>
|
||||||
|
<id>1856</id>
|
||||||
|
<id>1857</id>
|
||||||
|
<id>1858</id>
|
||||||
|
<id>1859</id>
|
||||||
|
<id>1860</id>
|
||||||
|
<id>1861</id>
|
||||||
|
<id>1862</id>
|
||||||
|
<id>1863</id>
|
||||||
|
<id>1864</id>
|
||||||
|
<id>1865</id>
|
||||||
|
<id>1866</id>
|
||||||
|
<id>1867</id>
|
||||||
|
<id>1868</id>
|
||||||
|
<id>1869</id>
|
||||||
|
<id>1870</id>
|
||||||
|
<id>1871</id>
|
||||||
|
<id>1872</id>
|
||||||
|
<id>1873</id>
|
||||||
|
<id>1874</id>
|
||||||
|
<id>1875</id>
|
||||||
|
<id>1876</id>
|
||||||
|
<id>1877</id>
|
||||||
|
<id>1878</id>
|
||||||
|
<id>1879</id>
|
||||||
|
<id>1880</id>
|
||||||
|
<id>1881</id>
|
||||||
|
<id>1882</id>
|
||||||
|
<id>1883</id>
|
||||||
|
<id>1884</id>
|
||||||
|
<id>1885</id>
|
||||||
|
<id>1886</id>
|
||||||
|
<id>1887</id>
|
||||||
|
<id>1888</id>
|
||||||
|
<id>1889</id>
|
||||||
|
<id>1890</id>
|
||||||
|
<id>1891</id>
|
||||||
|
<id>1892</id>
|
||||||
|
<id>1893</id>
|
||||||
|
<id>1894</id>
|
||||||
|
<id>1895</id>
|
||||||
|
<id>1896</id>
|
||||||
|
<id>1897</id>
|
||||||
|
<id>1898</id>
|
||||||
|
<id>1899</id>
|
||||||
|
<id>1900</id>
|
||||||
|
<id>1901</id>
|
||||||
|
<id>1902</id>
|
||||||
|
<id>1903</id>
|
||||||
|
<id>1904</id>
|
||||||
|
<id>1905</id>
|
||||||
|
<id>1906</id>
|
||||||
|
<id>1907</id>
|
||||||
|
<id>1908</id>
|
||||||
|
<id>1909</id>
|
||||||
|
<id>1910</id>
|
||||||
|
<id>1911</id>
|
||||||
|
<id>1912</id>
|
||||||
|
<id>1913</id>
|
||||||
|
<id>1914</id>
|
||||||
|
<id>1915</id>
|
||||||
|
<id>1916</id>
|
||||||
|
<id>1917</id>
|
||||||
|
<id>1918</id>
|
||||||
|
<id>1919</id>
|
||||||
|
<id>1920</id>
|
||||||
|
<id>1921</id>
|
||||||
|
<id>1922</id>
|
||||||
|
<id>1923</id>
|
||||||
|
<id>1924</id>
|
||||||
|
<id>1925</id>
|
||||||
|
<id>1926</id>
|
||||||
|
<id>1927</id>
|
||||||
|
<id>1928</id>
|
||||||
|
<id>1929</id>
|
||||||
|
<id>1930</id>
|
||||||
|
<id>1931</id>
|
||||||
|
<id>1932</id>
|
||||||
|
<id>1933</id>
|
||||||
|
<id>1934</id>
|
||||||
|
<id>1935</id>
|
||||||
|
<id>1936</id>
|
||||||
|
<id>1937</id>
|
||||||
|
<id>1938</id>
|
||||||
|
<id>1939</id>
|
||||||
|
<id>1940</id>
|
||||||
|
<id>1941</id>
|
||||||
|
<id>1942</id>
|
||||||
|
<id>1943</id>
|
||||||
|
<id>1944</id>
|
||||||
|
<id>1945</id>
|
||||||
|
<id>1946</id>
|
||||||
|
<id>1947</id>
|
||||||
|
<id>1948</id>
|
||||||
|
<id>1949</id>
|
||||||
|
<id>1950</id>
|
||||||
|
<id>1951</id>
|
||||||
|
<id>1952</id>
|
||||||
|
<id>1953</id>
|
||||||
|
<id>1954</id>
|
||||||
|
<id>1955</id>
|
||||||
|
<id>1956</id>
|
||||||
|
<id>1957</id>
|
||||||
|
<id>1958</id>
|
||||||
|
<id>1959</id>
|
||||||
|
<id>1960</id>
|
||||||
|
<id>1981</id>
|
||||||
|
<id>1982</id>
|
||||||
|
<id>1983</id>
|
||||||
|
<id>1988</id>
|
||||||
|
<id>1989</id>
|
||||||
|
<id>1992</id>
|
||||||
|
<id>1993</id>
|
||||||
|
<id>1994</id>
|
||||||
|
<id>1995</id>
|
||||||
|
<id>1996</id>
|
||||||
|
<id>1997</id>
|
||||||
|
<id>1998</id>
|
||||||
|
<id>1999</id>
|
||||||
|
<id>2000</id>
|
||||||
|
<id>2001</id>
|
||||||
|
<id>2002</id>
|
||||||
|
<id>2003</id>
|
||||||
|
<id>2004</id>
|
||||||
|
<id>2005</id>
|
||||||
|
<id>2006</id>
|
||||||
|
<id>2007</id>
|
||||||
|
<id>2008</id>
|
||||||
|
<id>2009</id>
|
||||||
|
<id>2010</id>
|
||||||
|
<id>2011</id>
|
||||||
|
<id>2012</id>
|
||||||
|
<id>2013</id>
|
||||||
|
<id>2014</id>
|
||||||
|
<id>2015</id>
|
||||||
|
<id>2016</id>
|
||||||
|
<id>2017</id>
|
||||||
|
<id>2018</id>
|
||||||
|
<id>2019</id>
|
||||||
|
<id>2020</id>
|
||||||
|
<id>2021</id>
|
||||||
|
<id>2022</id>
|
||||||
|
<id>2023</id>
|
||||||
|
<id>2024</id>
|
||||||
|
<id>2025</id>
|
||||||
|
<id>2026</id>
|
||||||
|
<id>2027</id>
|
||||||
|
<id>2028</id>
|
||||||
|
<id>2029</id>
|
||||||
|
<id>2030</id>
|
||||||
|
<id>2031</id>
|
||||||
|
<id>2032</id>
|
||||||
|
<id>2033</id>
|
||||||
|
<id>2034</id>
|
||||||
|
<id>2035</id>
|
||||||
|
<id>2036</id>
|
||||||
|
<id>2037</id>
|
||||||
|
<id>2038</id>
|
||||||
|
<id>2039</id>
|
||||||
|
<id>2040</id>
|
||||||
|
<id>2041</id>
|
||||||
|
<id>2042</id>
|
||||||
|
<id>2043</id>
|
||||||
|
<id>2044</id>
|
||||||
|
<id>2045</id>
|
||||||
|
<id>2046</id>
|
||||||
|
<id>2047</id>
|
||||||
|
<id>2048</id>
|
||||||
|
<id>2049</id>
|
||||||
|
<id>2050</id>
|
||||||
|
<id>2051</id>
|
||||||
|
<id>2052</id>
|
||||||
|
<id>2053</id>
|
||||||
|
<id>2054</id>
|
||||||
|
<id>2055</id>
|
||||||
|
<id>2056</id>
|
||||||
|
<id>2057</id>
|
||||||
|
<id>2058</id>
|
||||||
|
<id>2059</id>
|
||||||
|
<id>2060</id>
|
||||||
|
<id>2061</id>
|
||||||
|
<id>2062</id>
|
||||||
|
<id>2063</id>
|
||||||
|
<id>2064</id>
|
||||||
|
<id>2065</id>
|
||||||
|
<id>2066</id>
|
||||||
|
<id>2067</id>
|
||||||
|
<id>2068</id>
|
||||||
|
<id>2069</id>
|
||||||
|
<id>2070</id>
|
||||||
|
<id>2071</id>
|
||||||
|
<id>2072</id>
|
||||||
|
<id>2073</id>
|
||||||
|
<id>2074</id>
|
||||||
|
<id>2075</id>
|
||||||
|
<id>2076</id>
|
||||||
|
<id>2077</id>
|
||||||
|
<id>2078</id>
|
||||||
|
<id>2079</id>
|
||||||
|
<id>2080</id>
|
||||||
|
<id>2081</id>
|
||||||
|
<id>2082</id>
|
||||||
|
<id>2083</id>
|
||||||
|
<id>2084</id>
|
||||||
|
<id>2085</id>
|
||||||
|
<id>2086</id>
|
||||||
|
<id>2087</id>
|
||||||
|
<id>2088</id>
|
||||||
|
<id>2089</id>
|
||||||
|
<id>2090</id>
|
||||||
|
<id>2091</id>
|
||||||
|
<id>2092</id>
|
||||||
|
<id>2093</id>
|
||||||
|
<id>2094</id>
|
||||||
|
<id>2095</id>
|
||||||
|
<id>2096</id>
|
||||||
|
<id>2097</id>
|
||||||
|
<id>2098</id>
|
||||||
|
<id>2099</id>
|
||||||
|
<id>2100</id>
|
||||||
|
<id>2101</id>
|
||||||
|
<id>2102</id>
|
||||||
|
<id>2103</id>
|
||||||
|
<id>2104</id>
|
||||||
|
<id>2105</id>
|
||||||
|
<id>2106</id>
|
||||||
|
<id>2107</id>
|
||||||
|
<id>2108</id>
|
||||||
|
<id>2109</id>
|
||||||
|
<id>2110</id>
|
||||||
|
<id>2111</id>
|
||||||
|
<id>2112</id>
|
||||||
|
<id>2113</id>
|
||||||
|
<id>2114</id>
|
||||||
|
<id>2115</id>
|
||||||
|
<id>2116</id>
|
||||||
|
<id>2117</id>
|
||||||
|
<id>2118</id>
|
||||||
|
<id>2119</id>
|
||||||
|
<id>2120</id>
|
||||||
|
<id>2121</id>
|
||||||
|
<id>2122</id>
|
||||||
|
<id>2123</id>
|
||||||
|
<id>2124</id>
|
||||||
|
<id>2125</id>
|
||||||
|
<id>2126</id>
|
||||||
|
<id>2127</id>
|
||||||
|
<id>2128</id>
|
||||||
|
<id>2129</id>
|
||||||
|
<id>2130</id>
|
||||||
|
<id>2131</id>
|
||||||
|
<id>2132</id>
|
||||||
|
<id>2133</id>
|
||||||
|
<id>2134</id>
|
||||||
|
<id>2135</id>
|
||||||
|
<id>2136</id>
|
||||||
|
<id>2137</id>
|
||||||
|
<id>2138</id>
|
||||||
|
<id>2140</id>
|
||||||
|
<id>2142</id>
|
||||||
|
<id>2145</id>
|
||||||
|
<id>2146</id>
|
||||||
|
<id>2149</id>
|
||||||
|
<id>2151</id>
|
||||||
|
<id>2152</id>
|
||||||
|
<id>2158</id>
|
||||||
|
<id>2160</id>
|
||||||
|
<id>2161</id>
|
||||||
|
<id>2162</id>
|
||||||
|
<id>2163</id>
|
||||||
|
<id>2164</id>
|
||||||
|
<id>2165</id>
|
||||||
|
<id>2166</id>
|
||||||
|
<id>2167</id>
|
||||||
|
<id>2168</id>
|
||||||
|
<id>2169</id>
|
||||||
|
<id>2170</id>
|
||||||
|
<id>2171</id>
|
||||||
|
<id>2172</id>
|
||||||
|
<id>2173</id>
|
||||||
|
<id>2189</id>
|
||||||
|
<id>2190</id>
|
||||||
|
<id>2192</id>
|
||||||
|
<id>2193</id>
|
||||||
|
<id>2202</id>
|
||||||
|
<id>2236</id>
|
||||||
|
<id>2237</id>
|
||||||
|
<id>2238</id>
|
||||||
|
<id>2239</id>
|
||||||
|
<id>2240</id>
|
||||||
|
<id>2241</id>
|
||||||
|
<id>2242</id>
|
||||||
|
<id>2243</id>
|
||||||
|
<id>2244</id>
|
||||||
|
<id>2245</id>
|
||||||
|
<id>2246</id>
|
||||||
|
<id>2247</id>
|
||||||
|
<id>2248</id>
|
||||||
|
<id>2249</id>
|
||||||
|
<id>2250</id>
|
||||||
|
<id>2251</id>
|
||||||
|
<id>2252</id>
|
||||||
|
<id>2253</id>
|
||||||
|
<id>2254</id>
|
||||||
|
<id>2255</id>
|
||||||
|
<id>2256</id>
|
||||||
|
<id>2257</id>
|
||||||
|
<id>2258</id>
|
||||||
|
<id>2259</id>
|
||||||
|
<id>2260</id>
|
||||||
|
<id>2261</id>
|
||||||
|
<id>2262</id>
|
||||||
|
<id>2263</id>
|
||||||
|
<id>2264</id>
|
||||||
|
<id>2265</id>
|
||||||
|
<id>2266</id>
|
||||||
|
<id>2267</id>
|
||||||
|
<id>2268</id>
|
||||||
|
<id>2269</id>
|
||||||
|
<id>2270</id>
|
||||||
|
<id>2271</id>
|
||||||
|
<id>2272</id>
|
||||||
|
<id>2273</id>
|
||||||
|
<id>2274</id>
|
||||||
|
<id>2275</id>
|
||||||
|
<id>2276</id>
|
||||||
|
<id>2277</id>
|
||||||
|
<id>2278</id>
|
||||||
|
<id>2279</id>
|
||||||
|
<id>2280</id>
|
||||||
|
<id>2281</id>
|
||||||
|
<id>2282</id>
|
||||||
|
<id>2283</id>
|
||||||
|
<id>2297</id>
|
||||||
|
<id>2301</id>
|
||||||
|
<id>2305</id>
|
||||||
|
<id>2306</id>
|
||||||
|
</Upcoming>
|
||||||
|
</DefaultMissions>
|
||||||
@ -9,5 +9,7 @@
|
|||||||
<id>1512</id>
|
<id>1512</id>
|
||||||
<id>1513</id>
|
<id>1513</id>
|
||||||
<id>1514</id>
|
<id>1514</id>
|
||||||
|
<id>1651</id>
|
||||||
|
<id>1653</id>
|
||||||
</Upcoming>
|
</Upcoming>
|
||||||
</DefaultMissions>
|
</DefaultMissions>
|
||||||
40218
src/Resources/missions/missions_mam.xml
Normal file
40218
src/Resources/missions/missions_mam.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -125774,186 +125774,4 @@
|
|||||||
</AR>
|
</AR>
|
||||||
<RPT>false</RPT>
|
<RPT>false</RPT>
|
||||||
</Mission>
|
</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><Data><Objective><Pair><Key>Name</Key><Value>GrowDragon</Value></Pair></Objective><Type>Action</Type></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><Data><Objective><Pair><Key>Name</Key><Value>GrowDragon</Value></Pair></Objective><Type>Action</Type></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
<F>false</F>
|
|
||||||
</Task>
|
|
||||||
<RPT>true</RPT>
|
|
||||||
</Mission>
|
|
||||||
</Missions>
|
</Missions>
|
||||||
1130
src/Resources/missions/missions_wojs.xml
Normal file
1130
src/Resources/missions/missions_wojs.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,524 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<Missions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<Mission>
|
|
||||||
<RPT>false</RPT>
|
|
||||||
<I>1509</I>
|
|
||||||
<N>1. Find an Eggling and hatch it into a Mythie!</N>
|
|
||||||
<PID>1</PID>
|
|
||||||
<G>1</G>
|
|
||||||
<P xsi:nil="true" />
|
|
||||||
<S>
|
|
||||||
<Data><Repeat>0</Repeat><Hidden>0</Hidden><End><Type>VO</Type><Asset>RS_DATA/JSDirectedS341.unity3d/DlgIvyDirectedM1509End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>Popup</Type><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Congratulations! Your egg has hatched into an amazing Mythie! Here are some JumpStars and Coins to help you raise and train it!
|
|
||||||
</Text><ID>923369</ID><ItemID>0</ItemID><Priority>0</Priority></End><Reward><Asset>RS_DATA/PfUiMissionRewardDB.unity3d/PfUiMissionRewardDB</Asset></Reward><Title><Text>Adopt a Mythie</Text><ID>923367</ID></Title><Desc><Text>Meet Ivy in Enchanted Sanctuary and adopt your very own Mythie!</Text><ID>923368</ID></Desc></Data>
|
|
||||||
</S>
|
|
||||||
<A>false</A>
|
|
||||||
<C>0</C>
|
|
||||||
<MR>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>2</Type>
|
|
||||||
<Value>False</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>1</Type>
|
|
||||||
<Value>False</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Criteria>
|
|
||||||
<Type>all</Type>
|
|
||||||
<Ordered>true</Ordered>
|
|
||||||
<Min>4</Min>
|
|
||||||
<Repeat>1</Repeat>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1509</MissionID>
|
|
||||||
<ID>1195</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1509</MissionID>
|
|
||||||
<ID>1234</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1509</MissionID>
|
|
||||||
<ID>1235</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1509</MissionID>
|
|
||||||
<ID>1196</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1509</MissionID>
|
|
||||||
<ID>1197</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1509</MissionID>
|
|
||||||
<ID>1199</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
</Criteria>
|
|
||||||
</MR>
|
|
||||||
<V>1</V>
|
|
||||||
<AID>202676</AID>
|
|
||||||
<AAID>0</AAID>
|
|
||||||
<Task>
|
|
||||||
<I>1195</I>
|
|
||||||
<N>Get an Eggling</N>
|
|
||||||
<S>
|
|
||||||
<Data><Offer><Type>VO</Type><Asset>RS_DATA/TutMissionBoardIntroJS.unity3d/DlgIvyDirectedTut01</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>Popup</Type><ID>934639</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>I'm Ivy and welcome to World of JumpStart. There is so much to do here I want to make sure you donât miss a thing! Meet me in Enchanted Sanctuary to get started.
|
|
||||||
</Text><ItemID>0</ItemID><Priority>0</Priority></Offer><Objective><Pair><Key>Scene</Key><Value>SanctuaryBaby</Value></Pair><Pair><Key>NPC</Key><Value>PfDyan</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Meet</Type><Title><Text>Meet Ivy in Enchanted Sanctuary and get your very own Mythie!</Text><ID>934637</ID></Title><Desc><Text>Meet Ivy in Enchanted Sanctuary. Use the map or portal to get there.</Text><ID>934638</ID></Desc></Data>
|
|
||||||
</S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1196</I>
|
|
||||||
<N>Tickle Time</N>
|
|
||||||
<S><Data><Offer><Type>VO</Type><Asset>RS_DATA/PenReconM2T4.unity3d/DlgIvyReconM2T4Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>VO</Type><Asset>RS_DATA/PenReconM2T4.unity3d/DlgIvyReconM2T4End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>SanctuaryBaby</Value></Pair><Pair><Key>Name</Key><Value>EgglingTickle</Value></Pair></Objective><Type>Action</Type><Title><Text>Tickle Time</Text><ID>934640</ID></Title><Desc><Text>Click on your Eggling and choose tickle!</Text><ID>934641</ID></Desc><AutoComplete><Pair><Key>RaisedPetStage</Key><Value>HATCHING</Value></Pair></AutoComplete></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1197</I>
|
|
||||||
<N>Dance</N>
|
|
||||||
<S><Data><Offer><Type>VO</Type><Asset>RS_DATA/PenReconM2T5.unity3d/DlgIvyReconM2T5Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>VO</Type><Asset>RS_DATA/PenReconM2T5.unity3d/DlgIvyReconM2T5End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Name</Key><Value>EgglingDance</Value></Pair></Objective><Type>Action</Type><Title><Text>Dance</Text><ID>934642</ID></Title><Desc><Text>Click on your Eggling and choose Dance.</Text><ID>934643</ID></Desc><AutoComplete><Pair><Key>RaisedPetStage</Key><Value>HATCHING</Value></Pair></AutoComplete></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1199</I>
|
|
||||||
<N>Take your Eggling to the Hatchery</N>
|
|
||||||
<S><Data><Offer><Type>VO</Type><Asset>RS_DATA/PenReconM2T6.unity3d/DlgIvyReconM2T6Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><Objective><Pair><Key>Scene</Key><Value>SanctuaryEggulator</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Visit</Type><Title><Text>Take your Eggling to the Hatchery</Text><ID>934644</ID></Title><Desc><Text>Take your Eggling to the Hatchery in Enchanted Sanctuary.</Text></Desc><AutoComplete><Pair><Key>RaisedPetStage</Key><Value>HATCHING</Value></Pair></AutoComplete></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1234</I>
|
|
||||||
<N>Collect Hearts</N>
|
|
||||||
<S>
|
|
||||||
<Data><Offer><Type>VO</Type><Asset>RS_DATA/PenReconM2T2.unity3d/DlgIvyReconM2T2Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>VO</Type><Asset>RS_DATA/PenReconM2T2.unity3d/DlgIvyReconM2T2End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>SanctuaryBaby</Value></Pair><Pair><Key>Name</Key><Value>ESHearts</Value></Pair><Pair><Key>Quantity</Key><Value>1</Value></Pair></Objective><Type>Collect</Type><Title><Text>Collect 5 hearts around Enchanted Sanctuary</Text><ID>934646</ID></Title><Desc><Text>Collect some hearts to power up the eggulator.
|
|
||||||
</Text><ID>934647</ID></Desc><AutoComplete><Pair><Key>RaisedPetStage</Key><Value>FIND</Value></Pair></AutoComplete></Data>
|
|
||||||
</S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1235</I>
|
|
||||||
<N>Meet Eggling</N>
|
|
||||||
<S>
|
|
||||||
<Data><Offer><Type>VO</Type><Asset>RS_DATA/PenReconM2T3.unity3d/DlgIvyReconM2T3Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><Objective><Pair><Key>Scene</Key><Value>SanctuaryBaby</Value></Pair><Pair><Key>NPC</Key><Value>PfMythieEggling</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Meet</Type><Title><Text>Go to the Egg Nest and get an eggling!</Text><ID>934648</ID></Title><Desc><Text>Follow the magic fairy dust to the Egg Nest to get an Egg.
|
|
||||||
</Text><ID>934649</ID></Desc><AutoComplete><Pair><Key>RaisedPetStage</Key><Value>EGGINHAND</Value></Pair></AutoComplete></Data>
|
|
||||||
</S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<AR>
|
|
||||||
<a>5</a>
|
|
||||||
<p>1</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>3</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202676</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>5</mina>
|
|
||||||
<maxa>5</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
<AR>
|
|
||||||
<a>25</a>
|
|
||||||
<p>2</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>21</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202676</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>25</mina>
|
|
||||||
<maxa>25</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
</Mission>
|
|
||||||
<Mission>
|
|
||||||
<RPT>false</RPT>
|
|
||||||
<I>1512</I>
|
|
||||||
<N>5. Ready! Set! Go!</N>
|
|
||||||
<PID>1</PID>
|
|
||||||
<G>1</G>
|
|
||||||
<P xsi:nil="true" />
|
|
||||||
<S><Data><Repeat>0</Repeat><Hidden>0</Hidden><End><Type>Popup</Type><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>1st place performance Jumpee! With your skills you're going to do well here! Here are some JumpStars and Coins for all your hard work!</Text><ID>923379</ID><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>VO</Type><Asset>S_DATA/JSDirectedS342.unity3d/DlgIvyDirectedM1512End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Reward><Asset>RS_DATA/PfUiMissionRewardDB.unity3d/PfUiMissionRewardDB</Asset></Reward><Title><Text>Ready! Set! Go!</Text><ID>923377</ID></Title><Desc><Text>Visit the JS Stadium in DownTown.</Text><ID>923378</ID></Desc></Data></S>
|
|
||||||
<A>false</A>
|
|
||||||
<C>0</C>
|
|
||||||
<MR>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>2</Type>
|
|
||||||
<Value>true</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>3</Type>
|
|
||||||
<Value>1743</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>1</Type>
|
|
||||||
<Value>False</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Criteria>
|
|
||||||
<Type>all</Type>
|
|
||||||
<Ordered>true</Ordered>
|
|
||||||
<Min>4</Min>
|
|
||||||
<Repeat>1</Repeat>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1512</MissionID>
|
|
||||||
<ID>1202</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
</Criteria>
|
|
||||||
</MR>
|
|
||||||
<V>3</V>
|
|
||||||
<AID>202650</AID>
|
|
||||||
<AAID>0</AAID>
|
|
||||||
<Task>
|
|
||||||
<I>1202</I>
|
|
||||||
<N>Visit JS Stadium</N>
|
|
||||||
<S><Data><Offer><Type>VO</Type><Asset>RS_DATA/JSDirectedS342.unity3d/DlgIvyS342Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>Popup</Type><ID>934691</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>It's game time! Ready to shoot some hoops, spike a volleyball on the beach or carry the football for a game winning touchdown. Click the OK button to go to the JumpStart Stadium! </Text><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>VO</Type><Asset>RS_DATA/JSDirectedS342.unity3d/DlgIvyS342End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>Popup</Type><ID>934692</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>I know you'll give a 1st place performance Jumpee! Go ahead and head down a tunnel to start playing!</Text><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>JSStadiumInt</Value></Pair></Objective><Type>Visit</Type><Title><Text>Visit JS Stadium</Text><ID>934689</ID></Title><Desc><Text>Visit JS Stadium in DownTown.</Text><ID>934690</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<AR>
|
|
||||||
<a>5</a>
|
|
||||||
<p>1</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>3</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202650</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>5</mina>
|
|
||||||
<maxa>5</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
<AR>
|
|
||||||
<a>25</a>
|
|
||||||
<p>2</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>21</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202650</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>25</mina>
|
|
||||||
<maxa>25</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
</Mission>
|
|
||||||
<Mission>
|
|
||||||
<RPT>false</RPT>
|
|
||||||
<I>1513</I>
|
|
||||||
<N>6. It's a Block Party!</N>
|
|
||||||
<PID>1</PID>
|
|
||||||
<G>1</G>
|
|
||||||
<P xsi:nil="true" />
|
|
||||||
<S>
|
|
||||||
<Data><Repeat>0</Repeat><Hidden>0</Hidden><End><Type>Popup</Type><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Your house looks amazing! Party Time! Here are some Coins for you to buy a party or some furniture at the house hut!
|
|
||||||
</Text><ID>923382</ID><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>VO</Type><Asset>S_DATA/JSDirectedS348.unity3d/DlgIvyDirectedM1513End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Reward><Asset>RS_DATA/PfUiMissionRewardDB.unity3d/PfUiMissionRewardDB</Asset></Reward><Title><Text>It's a Block Party!</Text><ID>923380</ID></Title><Desc><Text>Visit your room in My Neighborhood</Text><ID>923381</ID></Desc></Data>
|
|
||||||
</S>
|
|
||||||
<A>false</A>
|
|
||||||
<C>0</C>
|
|
||||||
<MR>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>2</Type>
|
|
||||||
<Value>true</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>3</Type>
|
|
||||||
<Value>1743</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>1</Type>
|
|
||||||
<Value>False</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Criteria>
|
|
||||||
<Type>all</Type>
|
|
||||||
<Ordered>true</Ordered>
|
|
||||||
<Min>4</Min>
|
|
||||||
<Repeat>1</Repeat>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1513</MissionID>
|
|
||||||
<ID>1203</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
</Criteria>
|
|
||||||
</MR>
|
|
||||||
<V>3</V>
|
|
||||||
<AID>202660</AID>
|
|
||||||
<AAID>0</AAID>
|
|
||||||
<Task>
|
|
||||||
<I>1203</I>
|
|
||||||
<N>Visit Your Room</N>
|
|
||||||
<S><Data><Offer><Type>VO</Type><Asset>RS_DATA/JSDirectedS343.unity3d/DlgIvyS343Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>Popup</Type><ID>934695</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>You have your very own house and neighborhood here at JumpStart! Just find your house inside the neighborhood and head inside to start decorating!</Text><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>VO</Type><Asset>RS_DATA/JSDirectedS343.unity3d/DlgIvyS343End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>Popup</Type><ID>934696</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Block party time! Your house looks so good you have to show it off! You should use the coins you've earned to throw a housewarming party!</Text><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>MyRoomsInt</Value></Pair></Objective><Type>Visit</Type><Title><Text>Visit Your Room</Text><ID>934693</ID></Title><Desc><Text>Visit Your Room in My Neighborhood.</Text><ID>934694</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<AR>
|
|
||||||
<a>5</a>
|
|
||||||
<p>1</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>3</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202660</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>5</mina>
|
|
||||||
<maxa>5</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
<AR>
|
|
||||||
<a>25</a>
|
|
||||||
<p>2</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>21</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202660</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>25</mina>
|
|
||||||
<maxa>25</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
</Mission>
|
|
||||||
<Mission>
|
|
||||||
<RPT>false</RPT>
|
|
||||||
<I>1514</I>
|
|
||||||
<N>7. Want to Hangout with Poseidon?</N>
|
|
||||||
<PID>1</PID>
|
|
||||||
<G>1</G>
|
|
||||||
<P xsi:nil="true" />
|
|
||||||
<S><Data><Repeat>0</Repeat><Hidden>0</Hidden><End><Type>VO</Type><Asset>S_DATA/JSDirectedS346.unity3d/DlgIvyDirectedM1514End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>Popup</Type><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Fantastic! You visited the most happening place in JumpStart! Here are some JumpStars and Coins to spend around!</Text><ID>923385</ID><ItemID>0</ItemID><Priority>0</Priority></End><Reward><Asset>RS_DATA/PfUiMissionRewardDB.unity3d/PfUiMissionRewardDB</Asset></Reward><Title><Text>Want to Hangout with Poseidon?</Text><ID>923383</ID></Title><Desc><Text>Visit the Octolair in Poseidon's Hangout.</Text><ID>923384</ID></Desc></Data></S>
|
|
||||||
<A>false</A>
|
|
||||||
<C>0</C>
|
|
||||||
<MR>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>2</Type>
|
|
||||||
<Value>true</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>3</Type>
|
|
||||||
<Value>1743</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>1</Type>
|
|
||||||
<Value>False</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Criteria>
|
|
||||||
<Type>all</Type>
|
|
||||||
<Ordered>true</Ordered>
|
|
||||||
<Min>4</Min>
|
|
||||||
<Repeat>1</Repeat>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1514</MissionID>
|
|
||||||
<ID>1204</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
</Criteria>
|
|
||||||
</MR>
|
|
||||||
<V>3</V>
|
|
||||||
<AID>202659</AID>
|
|
||||||
<AAID>0</AAID>
|
|
||||||
<Task>
|
|
||||||
<I>1204</I>
|
|
||||||
<N>Visit the Octolair</N>
|
|
||||||
<S><Data><Offer><Type>VO</Type><Asset>RS_DATA/JSDirectedS346.unity3d/DlgIvyS346Offer</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>Popup</Type><ID>934699</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Want to watch a live band, dance on stage or compete in a Dance Off! It can all be done in the Octolair in Poseidon's Hangout! Ready to go? Click the OK button to be taken directly there now! </Text><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>VO</Type><Asset>RS_DATA/JSDirectedS346.unity3d/DlgIvyS346End</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>Popup</Type><ID>934700</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Poseidon's Hangout is the place to be! Make sure you show off your dance moves on the dance floor and visit your VIP Lounge before you leave!</Text><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>LoungeInt</Value></Pair></Objective><Type>Visit</Type><Title><Text>Visit the Octolair</Text><ID>934697</ID></Title><Desc><Text>Visit the Octolair in Poseidon's Hangout.</Text><ID>934698</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<AR>
|
|
||||||
<a>5</a>
|
|
||||||
<p>1</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>3</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202659</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>5</mina>
|
|
||||||
<maxa>5</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
<AR>
|
|
||||||
<a>25</a>
|
|
||||||
<p>2</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>21</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>202659</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>25</mina>
|
|
||||||
<maxa>25</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
</Mission>
|
|
||||||
<Mission>
|
|
||||||
<RPT>false</RPT>
|
|
||||||
<I>1743</I>
|
|
||||||
<N>2. Jumpstart Tour</N>
|
|
||||||
<PID>3</PID>
|
|
||||||
<G>1</G>
|
|
||||||
<P xsi:nil="true" />
|
|
||||||
<S><Data><Repeat>0</Repeat><Hidden>0</Hidden><Reward><Asset>RS_DATA/PfUiMissionRewardDB.unity3d/PfUiMissionRewardDB</Asset></Reward><Title><Text>Jumpstart Tour</Text><ID>934600</ID></Title><Desc><Text>Take a tour around Jumpstart and meet new friends!</Text><ID>934601</ID></Desc></Data></S>
|
|
||||||
<A>false</A>
|
|
||||||
<C>0</C>
|
|
||||||
<MR>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>2</Type>
|
|
||||||
<Value>true</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>3</Type>
|
|
||||||
<Value>1509</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Prerequisites>
|
|
||||||
<Type>1</Type>
|
|
||||||
<Value>False</Value>
|
|
||||||
<ClientRule>false</ClientRule>
|
|
||||||
</Prerequisites>
|
|
||||||
<Criteria>
|
|
||||||
<Type>all</Type>
|
|
||||||
<Ordered>true</Ordered>
|
|
||||||
<Min>4</Min>
|
|
||||||
<Repeat>1</Repeat>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1743</MissionID>
|
|
||||||
<ID>1781</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1743</MissionID>
|
|
||||||
<ID>1782</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1743</MissionID>
|
|
||||||
<ID>1783</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
<RuleItems>
|
|
||||||
<Type>1</Type>
|
|
||||||
<MissionID>1743</MissionID>
|
|
||||||
<ID>1784</ID>
|
|
||||||
<Complete>0</Complete>
|
|
||||||
</RuleItems>
|
|
||||||
</Criteria>
|
|
||||||
</MR>
|
|
||||||
<V>2</V>
|
|
||||||
<AID>203011</AID>
|
|
||||||
<AAID>0</AAID>
|
|
||||||
<Task>
|
|
||||||
<I>1781</I>
|
|
||||||
<N>Windy Hollows Visit</N>
|
|
||||||
<S><Data><Setup><Scene>Hollows</Scene><Asset>RS_DATA/PfEleanor.unity3d/PfEleanor</Asset><Location>PfMarker_BroomStickExit</Location><Recursive>false</Recursive><Persistent>false</Persistent></Setup><Offer><Type>Popup</Type><ID>934652</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Windy Hollows is the most magical place here. You can charm your friends into crazy things, play a game of broom ball or fly a broom around the Magic Marsh! Go Meet Eleanor there!</Text><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>VO</Type><Asset>RS_SOUND/DlgIvyWindyHollows.unity3d/DlgIvyWindyHollows</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>Popup</Type><ID>934653</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfEleanor</NPC><Text>I've been waiting for you to get here. I'm Eleanor and I'm a new explorer just like you. I can't wait to start the adventures. While you're here, you should play a game or two.</Text><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>VO</Type><Asset>RS_SOUND/DlgEleanorWelcome.unity3d/DlgEleanorWelcome</Asset><NPC>PfEleanor</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>Hollows</Value></Pair><Pair><Key>NPC</Key><Value>PfEleanor</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Meet</Type><Title><Text>Meet Eleanor in Windy Hollows to play a game</Text><ID>934650</ID></Title><Desc><Text>Meet Eleanor in Windy Hollows. Use your map or the portals to get there.</Text><ID>934651</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1782</I>
|
|
||||||
<N>Adventure Canyon Visit</N>
|
|
||||||
<S><Data><Setup><Scene>AdventureCanyon</Scene><Asset>RS_DATA/PfCJ.unity3d/PfCJ</Asset><Location>PfMarker_CJMeet</Location><Recursive>false</Recursive><Persistent>false</Persistent></Setup><Offer><Type>Popup</Type><ID>934656</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfEleanor</NPC><Text>You're doing such great work! Everyone is talking about your natural explorer skills. You should find CJ now. I hope there will be dancing! CJ is in Adventure Canyon, go meet him now!</Text><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>VO</Type><Asset>RS_SOUND/DlgEleanorTourEnd.unity3d/DlgEleanorTourEnd</Asset><NPC>PfEleanor</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>Popup</Type><ID>934657</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfCJ</NPC><Text>Woo-eee, I'm CJ and I just might be the most adventurous amphibian you'll ever meet. Since you're new, let me show you around. </Text><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>VO</Type><Asset>RS_SOUND/DlgCJWelcome.unity3d/DlgCJWelcome</Asset><NPC>PfCJ</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>AdventureCanyon</Value></Pair><Pair><Key>NPC</Key><Value>PfCJ</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Meet</Type><Title><Text>Meet CJ in Adventure Canyon to play Dune Buggy!</Text><ID>934654</ID></Title><Desc><Text>CJ wants to meet you in Adventure Canyon so he can show you Dune Buggy!</Text><ID>934655</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1783</I>
|
|
||||||
<N>Downtown Visit</N>
|
|
||||||
<S><Data><Setup><Scene>DownTown</Scene><Asset>RS_DATA/PfKisha.unity3d/PfKisha</Asset><Location>PfMarker_MeetKisha</Location><Recursive>false</Recursive><Persistent>false</Persistent></Setup><Offer><Type>Popup</Type><ID>934660</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfCJ</NPC><Text>Lucky you! Kisha wants to show you something. She's in Downtown! Go meet her there now.</Text><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>VO</Type><Asset>RS_SOUND/DlgCJTourEnd.unity3d/DlgCJTourEnd</Asset><NPC>PfCJ</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>Popup</Type><ID>934661</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfKisha</NPC><Text>Hey there new explorer, it's me Kisha. Let me show you around. </Text><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>VO</Type><Asset>RS_SOUND/DlgKishaWelcome.unity3d/DlgKishaWelcome</Asset><NPC>PfKisha</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>DownTown</Value></Pair><Pair><Key>NPC</Key><Value>PfKisha</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Meet</Type><Title><Text>Kisha is waiting for you in Downtown</Text><ID>934658</ID></Title><Desc><Text>Find Kisha in Dowtown, she would like to meet your mythie.</Text><ID>934659</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<Task>
|
|
||||||
<I>1784</I>
|
|
||||||
<N>Enchanted Revisit</N>
|
|
||||||
<S><Data><Setup><Scene>SanctuaryBaby</Scene><Recursive>false</Recursive><Persistent>false</Persistent></Setup><Offer><Type>Popup</Type><ID>934664</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Come back to the Enchanted Sanctuary and talk to me.</Text><ItemID>0</ItemID><Priority>0</Priority></Offer><Offer><Type>VO</Type><Asset>RS_SOUND/DlgIvyTourEnd.unity3d/DlgIvyTourEnd</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></Offer><End><Type>Popup</Type><ID>934665</ID><Asset>RS_DATA/PfUiMissionActionDB.unity3d/PfUiMissionActionDB</Asset><NPC>PfDyan</NPC><Text>Welcome back Jumpee! You've earned a prize!</Text><ItemID>0</ItemID><Priority>0</Priority></End><End><Type>VO</Type><Asset>RS_SOUND/DlgIvyWelcome.unity3d/DlgIvyWelcome</Asset><NPC>PfDyan</NPC><ItemID>0</ItemID><Priority>0</Priority></End><Objective><Pair><Key>Scene</Key><Value>SanctuaryBaby</Value></Pair><Pair><Key>NPC</Key><Value>PfDyan</Value></Pair><Pair><Key>Asset</Key><Value>RS_DATA/PfDyan.unity3d/PfDyan</Value></Pair><Pair><Key>Time</Key><Value>0</Value></Pair><Pair><Key>HideArrow</Key><Value>False</Value></Pair></Objective><Type>Meet</Type><Title><Text>Return to Enchanted Sanctuary to talk with Ivy, she has a reward for you.</Text><ID>934662</ID></Title><Desc><Text>Ivy wants to give you a gift for meeting all her friends, return to Enchanted Sanctuary to collect it!</Text><ID>934663</ID></Desc></Data></S>
|
|
||||||
<C>0</C>
|
|
||||||
</Task>
|
|
||||||
<AR>
|
|
||||||
<a>5</a>
|
|
||||||
<p>1</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>3</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>203011</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>5</mina>
|
|
||||||
<maxa>5</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
<AR>
|
|
||||||
<a>25</a>
|
|
||||||
<p>2</p>
|
|
||||||
<i xsi:nil="true" />
|
|
||||||
<t>1</t>
|
|
||||||
<r>21</r>
|
|
||||||
<ii>0</ii>
|
|
||||||
<ai>203011</ai>
|
|
||||||
<amulti>true</amulti>
|
|
||||||
<mina>25</mina>
|
|
||||||
<maxa>25</maxa>
|
|
||||||
<d xsi:nil="true" />
|
|
||||||
<cid>0</cid>
|
|
||||||
<ui xsi:nil="true" />
|
|
||||||
<atinfoid>0</atinfoid>
|
|
||||||
<atid>0</atid>
|
|
||||||
</AR>
|
|
||||||
</Mission>
|
|
||||||
</Missions>
|
|
||||||
@ -35,7 +35,21 @@
|
|||||||
</MMOServerInfo>
|
</MMOServerInfo>
|
||||||
</Version>
|
</Version>
|
||||||
|
|
||||||
<!-- Multiple <MMOServerInfo> child can be used instead of <ZoneList>
|
<Version>
|
||||||
|
<!-- Eat My Dust -->
|
||||||
|
<VersionMin>0x04000000</VersionMin>
|
||||||
|
<VersionMax>0x04ffffff</VersionMax>
|
||||||
|
<ZoneList>BadlandsEMD RoadSideAttractionEMD JunkYardEMD PitRowEMD RacingCircuitEMD MyGarageEMDInt DragonHomeEMD ScorpionHomeEMD CaptureTheFlag CircuitRacing EatMyDust MechanicShopEMDInt</ZoneList>
|
||||||
|
</Version>
|
||||||
|
|
||||||
|
<Version>
|
||||||
|
<!-- Magic & Mythies -->
|
||||||
|
<VersionMin>0x80000000</VersionMin>
|
||||||
|
<VersionMax>0x80ffffff</VersionMax>
|
||||||
|
<ZoneList>FarmingJSM HubEnchantedJSM HubHollowsJSM HubTreeJSM MythieRaceTrackBroom MythieRaceTrackPet MythieRacingBroom MythieRacingPet StablesJSM TargetPracticeJSM</ZoneList>
|
||||||
|
</Version>
|
||||||
|
|
||||||
|
<!-- Multiple <MMOServerInfo> child can be used instead of <ZoneList>
|
||||||
to provide different MMO servers for different zones (<ZN> tag in <MMOServerInfo>).
|
to provide different MMO servers for different zones (<ZN> tag in <MMOServerInfo>).
|
||||||
|
|
||||||
For zones not specified in this config, default entry from DWADragonsMain.xml will be used.
|
For zones not specified in this config, default entry from DWADragonsMain.xml will be used.
|
||||||
|
|||||||
@ -6601,6 +6601,193 @@ SoD 3.31 main store section and subsection filtering:
|
|||||||
<ii>3180</ii>
|
<ii>3180</ii>
|
||||||
<ii>2703</ii>
|
<ii>2703</ii>
|
||||||
</StoreData>
|
</StoreData>
|
||||||
|
<StoreData>
|
||||||
|
<i>30024</i>
|
||||||
|
<s>MainStreet_Vehicles</s>
|
||||||
|
<d>Vehicles available from MainStreet: Llama, Pony, Skateboard, Ostrich, etc.</d>
|
||||||
|
<ii>2660</ii>
|
||||||
|
<ii>2661</ii>
|
||||||
|
<ii>2662</ii>
|
||||||
|
<ii>2663</ii>
|
||||||
|
<ii>2664</ii>
|
||||||
|
<ii>2665</ii>
|
||||||
|
<ii>2666</ii>
|
||||||
|
<ii>2667</ii>
|
||||||
|
<ii>2668</ii>
|
||||||
|
<ii>2669</ii>
|
||||||
|
<ii>2670</ii>
|
||||||
|
<ii>2671</ii>
|
||||||
|
<ii>2672</ii>
|
||||||
|
<ii>2673</ii>
|
||||||
|
<ii>2674</ii>
|
||||||
|
<ii>2675</ii>
|
||||||
|
<ii>2676</ii>
|
||||||
|
<ii>2677</ii>
|
||||||
|
<ii>2678</ii>
|
||||||
|
<ii>2679</ii>
|
||||||
|
<ii>2680</ii>
|
||||||
|
<ii>2681</ii>
|
||||||
|
<ii>2682</ii>
|
||||||
|
<ii>2683</ii>
|
||||||
|
<ii>2684</ii>
|
||||||
|
<ii>2685</ii>
|
||||||
|
<ii>2686</ii>
|
||||||
|
<ii>2687</ii>
|
||||||
|
<ii>2688</ii>
|
||||||
|
<ii>2689</ii>
|
||||||
|
<ii>2690</ii>
|
||||||
|
<ii>2691</ii>
|
||||||
|
<ii>2692</ii>
|
||||||
|
<ii>2693</ii>
|
||||||
|
<ii>2694</ii>
|
||||||
|
<ii>2695</ii>
|
||||||
|
<ii>2696</ii>
|
||||||
|
<ii>2697</ii>
|
||||||
|
<ii>2698</ii>
|
||||||
|
<ii>2699</ii>
|
||||||
|
<ii>2700</ii>
|
||||||
|
<ii>2701</ii>
|
||||||
|
<ii>2702</ii>
|
||||||
|
<ii>2703</ii>
|
||||||
|
<ii>2704</ii>
|
||||||
|
<ii>2705</ii>
|
||||||
|
<ii>2706</ii>
|
||||||
|
<ii>2707</ii>
|
||||||
|
<ii>2708</ii>
|
||||||
|
<ii>2709</ii>
|
||||||
|
<ii>2710</ii>
|
||||||
|
<ii>2711</ii>
|
||||||
|
<ii>2712</ii>
|
||||||
|
<ii>2713</ii>
|
||||||
|
<ii>2714</ii>
|
||||||
|
<ii>2715</ii>
|
||||||
|
<ii>2716</ii>
|
||||||
|
<ii>2717</ii>
|
||||||
|
<ii>2718</ii>
|
||||||
|
<ii>2735</ii>
|
||||||
|
<ii>2736</ii>
|
||||||
|
<ii>2748</ii>
|
||||||
|
<ii>2749</ii>
|
||||||
|
<ii>2750</ii>
|
||||||
|
<ii>2751</ii>
|
||||||
|
<ii>2752</ii>
|
||||||
|
<ii>2753</ii>
|
||||||
|
<ii>2754</ii>
|
||||||
|
<ii>2755</ii>
|
||||||
|
<ii>2756</ii>
|
||||||
|
<ii>2757</ii>
|
||||||
|
<ii>2758</ii>
|
||||||
|
<ii>2759</ii>
|
||||||
|
<ii>2797</ii>
|
||||||
|
<ii>2798</ii>
|
||||||
|
<ii>2799</ii>
|
||||||
|
<ii>2800</ii>
|
||||||
|
<ii>2801</ii>
|
||||||
|
<ii>2802</ii>
|
||||||
|
<ii>2803</ii>
|
||||||
|
<ii>2804</ii>
|
||||||
|
<ii>3117</ii>
|
||||||
|
<ii>3118</ii>
|
||||||
|
<ii>3119</ii>
|
||||||
|
<ii>3120</ii>
|
||||||
|
<ii>3121</ii>
|
||||||
|
<ii>3179</ii>
|
||||||
|
<ii>3180</ii>
|
||||||
|
<ii>3181</ii>
|
||||||
|
<ii>3182</ii>
|
||||||
|
<ii>3183</ii>
|
||||||
|
<ii>3184</ii>
|
||||||
|
<ii>3185</ii>
|
||||||
|
<ii>3186</ii>
|
||||||
|
<ii>3224</ii>
|
||||||
|
<ii>3225</ii>
|
||||||
|
<ii>3226</ii>
|
||||||
|
<ii>3227</ii>
|
||||||
|
<ii>3265</ii>
|
||||||
|
<ii>3266</ii>
|
||||||
|
<ii>3267</ii>
|
||||||
|
<ii>3268</ii>
|
||||||
|
<ii>3269</ii>
|
||||||
|
<ii>3372</ii>
|
||||||
|
<ii>3415</ii>
|
||||||
|
<ii>3416</ii>
|
||||||
|
<ii>3417</ii>
|
||||||
|
<ii>3418</ii>
|
||||||
|
<ii>3425</ii>
|
||||||
|
<ii>3426</ii>
|
||||||
|
<ii>3427</ii>
|
||||||
|
<ii>3428</ii>
|
||||||
|
<ii>3429</ii>
|
||||||
|
<ii>3430</ii>
|
||||||
|
<ii>3431</ii>
|
||||||
|
<ii>3432</ii>
|
||||||
|
<ii>3433</ii>
|
||||||
|
<ii>3434</ii>
|
||||||
|
<ii>3435</ii>
|
||||||
|
<ii>3436</ii>
|
||||||
|
<ii>3437</ii>
|
||||||
|
<ii>3438</ii>
|
||||||
|
<ii>3439</ii>
|
||||||
|
<ii>4631</ii>
|
||||||
|
<ii>4632</ii>
|
||||||
|
<ii>4633</ii>
|
||||||
|
<ii>6672</ii>
|
||||||
|
<ii>6763</ii>
|
||||||
|
<ii>6764</ii>
|
||||||
|
<ii>6765</ii>
|
||||||
|
<ii>6766</ii>
|
||||||
|
<ii>6767</ii>
|
||||||
|
<ii>6768</ii>
|
||||||
|
<ii>6769</ii>
|
||||||
|
<ii>6770</ii>
|
||||||
|
<ii>6771</ii>
|
||||||
|
<ii>6772</ii>
|
||||||
|
<ii>6773</ii>
|
||||||
|
<ii>6774</ii>
|
||||||
|
<ii>6775</ii>
|
||||||
|
<ii>6776</ii>
|
||||||
|
<ii>6777</ii>
|
||||||
|
<ii>6778</ii>
|
||||||
|
<ii>6779</ii>
|
||||||
|
<ii>6780</ii>
|
||||||
|
<ii>6781</ii>
|
||||||
|
<ii>6782</ii>
|
||||||
|
<ii>6799</ii>
|
||||||
|
<ii>6800</ii>
|
||||||
|
<ii>6942</ii>
|
||||||
|
<ii>6949</ii>
|
||||||
|
<ii>6965</ii>
|
||||||
|
<ii>6966</ii>
|
||||||
|
<ii>6968</ii>
|
||||||
|
<ii>6969</ii>
|
||||||
|
<ii>6974</ii>
|
||||||
|
<ii>6975</ii>
|
||||||
|
<ii>6976</ii>
|
||||||
|
<ii>6979</ii>
|
||||||
|
<ii>6980</ii>
|
||||||
|
<ii>6981</ii>
|
||||||
|
<ii>6982</ii>
|
||||||
|
<ii>6983</ii>
|
||||||
|
<ii>6984</ii>
|
||||||
|
<ii>6985</ii>
|
||||||
|
<ii>6986</ii>
|
||||||
|
<ii>6987</ii>
|
||||||
|
<ii>6988</ii>
|
||||||
|
<ii>6989</ii>
|
||||||
|
<ii>6990</ii>
|
||||||
|
<ii>6995</ii>
|
||||||
|
<ii>6996</ii>
|
||||||
|
<ii>6997</ii>
|
||||||
|
<ii>6998</ii>
|
||||||
|
<ii>7151</ii>
|
||||||
|
<ii>7200</ii>
|
||||||
|
<ii>7201</ii>
|
||||||
|
<ii>7202</ii>
|
||||||
|
<ii>7203</ii>
|
||||||
|
<ii>7204</ii>
|
||||||
|
<ii>7205</ii>
|
||||||
|
<ii>7206</ii>
|
||||||
|
</StoreData>
|
||||||
<StoreData>
|
<StoreData>
|
||||||
<i>25</i>
|
<i>25</i>
|
||||||
<s>JS Petz</s>
|
<s>JS Petz</s>
|
||||||
@ -6734,6 +6921,143 @@ SoD 3.31 main store section and subsection filtering:
|
|||||||
<ii>2537</ii>
|
<ii>2537</ii>
|
||||||
<ii>2553</ii>
|
<ii>2553</ii>
|
||||||
</StoreData>
|
</StoreData>
|
||||||
|
<StoreData>
|
||||||
|
<i>30025</i>
|
||||||
|
<s>JS Petz</s>
|
||||||
|
<d> MainStreet PetStore </d>
|
||||||
|
<ii>2524</ii>
|
||||||
|
<ii>2525</ii>
|
||||||
|
<ii>2526</ii>
|
||||||
|
<ii>2527</ii>
|
||||||
|
<ii>2528</ii>
|
||||||
|
<ii>2529</ii>
|
||||||
|
<ii>2530</ii>
|
||||||
|
<ii>2531</ii>
|
||||||
|
<ii>2532</ii>
|
||||||
|
<ii>2533</ii>
|
||||||
|
<ii>2534</ii>
|
||||||
|
<ii>2535</ii>
|
||||||
|
<ii>2536</ii>
|
||||||
|
<ii>2537</ii>
|
||||||
|
<ii>2538</ii>
|
||||||
|
<ii>2539</ii>
|
||||||
|
<ii>2540</ii>
|
||||||
|
<ii>2541</ii>
|
||||||
|
<ii>2542</ii>
|
||||||
|
<ii>2543</ii>
|
||||||
|
<ii>2544</ii>
|
||||||
|
<ii>2545</ii>
|
||||||
|
<ii>2546</ii>
|
||||||
|
<ii>2547</ii>
|
||||||
|
<ii>2548</ii>
|
||||||
|
<ii>2549</ii>
|
||||||
|
<ii>2550</ii>
|
||||||
|
<ii>2551</ii>
|
||||||
|
<ii>2552</ii>
|
||||||
|
<ii>2553</ii>
|
||||||
|
<ii>2554</ii>
|
||||||
|
<ii>2555</ii>
|
||||||
|
<ii>2556</ii>
|
||||||
|
<ii>2557</ii>
|
||||||
|
<ii>2558</ii>
|
||||||
|
<ii>2559</ii>
|
||||||
|
<ii>2560</ii>
|
||||||
|
<ii>2561</ii>
|
||||||
|
<ii>2562</ii>
|
||||||
|
<ii>2563</ii>
|
||||||
|
<ii>2564</ii>
|
||||||
|
<ii>2565</ii>
|
||||||
|
<ii>2566</ii>
|
||||||
|
<ii>2567</ii>
|
||||||
|
<ii>2568</ii>
|
||||||
|
<ii>2569</ii>
|
||||||
|
<ii>2570</ii>
|
||||||
|
<ii>2571</ii>
|
||||||
|
<ii>2572</ii>
|
||||||
|
<ii>2573</ii>
|
||||||
|
<ii>2574</ii>
|
||||||
|
<ii>2575</ii>
|
||||||
|
<ii>2576</ii>
|
||||||
|
<ii>2577</ii>
|
||||||
|
<ii>2578</ii>
|
||||||
|
<ii>2579</ii>
|
||||||
|
<ii>2580</ii>
|
||||||
|
<ii>2581</ii>
|
||||||
|
<ii>2582</ii>
|
||||||
|
<ii>2583</ii>
|
||||||
|
<ii>2584</ii>
|
||||||
|
<ii>2585</ii>
|
||||||
|
<ii>2586</ii>
|
||||||
|
<ii>2587</ii>
|
||||||
|
<ii>2588</ii>
|
||||||
|
<ii>2589</ii>
|
||||||
|
<ii>2590</ii>
|
||||||
|
<ii>2591</ii>
|
||||||
|
<ii>2592</ii>
|
||||||
|
<ii>2593</ii>
|
||||||
|
<ii>2594</ii>
|
||||||
|
<ii>2595</ii>
|
||||||
|
<ii>2596</ii>
|
||||||
|
<ii>2597</ii>
|
||||||
|
<ii>2598</ii>
|
||||||
|
<ii>2599</ii>
|
||||||
|
<ii>2600</ii>
|
||||||
|
<ii>2601</ii>
|
||||||
|
<ii>2602</ii>
|
||||||
|
<ii>2603</ii>
|
||||||
|
<ii>2604</ii>
|
||||||
|
<ii>2605</ii>
|
||||||
|
<ii>2606</ii>
|
||||||
|
<ii>2607</ii>
|
||||||
|
<ii>2608</ii>
|
||||||
|
<ii>2609</ii>
|
||||||
|
<ii>2610</ii>
|
||||||
|
<ii>2611</ii>
|
||||||
|
<ii>2612</ii>
|
||||||
|
<ii>2613</ii>
|
||||||
|
<ii>2614</ii>
|
||||||
|
<ii>2615</ii>
|
||||||
|
<ii>2616</ii>
|
||||||
|
<ii>2617</ii>
|
||||||
|
<ii>2618</ii>
|
||||||
|
<ii>2619</ii>
|
||||||
|
<ii>2620</ii>
|
||||||
|
<ii>2621</ii>
|
||||||
|
<ii>2622</ii>
|
||||||
|
<ii>2623</ii>
|
||||||
|
<ii>2624</ii>
|
||||||
|
<ii>2625</ii>
|
||||||
|
<ii>2626</ii>
|
||||||
|
<ii>2627</ii>
|
||||||
|
<ii>3144</ii>
|
||||||
|
<ii>3145</ii>
|
||||||
|
<ii>3146</ii>
|
||||||
|
<ii>3147</ii>
|
||||||
|
<ii>3148</ii>
|
||||||
|
<ii>3149</ii>
|
||||||
|
<ii>3150</ii>
|
||||||
|
<ii>3151</ii>
|
||||||
|
<ii>3200</ii>
|
||||||
|
<ii>3201</ii>
|
||||||
|
<ii>3202</ii>
|
||||||
|
<ii>3203</ii>
|
||||||
|
<ii>3215</ii>
|
||||||
|
<ii>3216</ii>
|
||||||
|
<ii>3219</ii>
|
||||||
|
<ii>3420</ii>
|
||||||
|
<ii>3421</ii>
|
||||||
|
<ii>3422</ii>
|
||||||
|
<ii>3423</ii>
|
||||||
|
<ii>3840</ii>
|
||||||
|
<ii>3841</ii>
|
||||||
|
<ii>3842</ii>
|
||||||
|
<ii>3843</ii>
|
||||||
|
<ii>3844</ii>
|
||||||
|
<ii>3845</ii>
|
||||||
|
<ii>3846</ii>
|
||||||
|
<ii>4629</ii>
|
||||||
|
<ii>4630</ii>
|
||||||
|
</StoreData>
|
||||||
<StoreData>
|
<StoreData>
|
||||||
<i>26</i>
|
<i>26</i>
|
||||||
<s>ML Avatar Default</s>
|
<s>ML Avatar Default</s>
|
||||||
|
|||||||
@ -9,6 +9,9 @@ public enum AchievementPointTypes {
|
|||||||
[XmlEnum("2")]
|
[XmlEnum("2")]
|
||||||
GameCurrency = 2, // gold
|
GameCurrency = 2, // gold
|
||||||
|
|
||||||
|
[XmlEnum("3")]
|
||||||
|
Unknown3 = 3, // unknown, used in MB AchievementTasks
|
||||||
|
|
||||||
[XmlEnum("4")]
|
[XmlEnum("4")]
|
||||||
Unknown4 = 4,
|
Unknown4 = 4,
|
||||||
|
|
||||||
|
|||||||
32
src/Schema/AchievementTaskInfo.cs
Normal file
32
src/Schema/AchievementTaskInfo.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "AchievementTaskInfo", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class AchievementTaskInfo
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "AchievementInfoID")]
|
||||||
|
public int InfoID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "AchievementTaskID")]
|
||||||
|
public int TaskID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "PointValue")]
|
||||||
|
public int PointValue;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "Reproducible")]
|
||||||
|
public bool Reproducible;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "AchieventTaskReward")]
|
||||||
|
public AchievementReward[] Rewards;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "AchievementName")]
|
||||||
|
public string Name;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "AchievementTaskGroupID")]
|
||||||
|
public int TaskGroupID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "Level")]
|
||||||
|
public int Level;
|
||||||
|
}
|
||||||
26
src/Schema/AchievementTaskReward.cs
Normal file
26
src/Schema/AchievementTaskReward.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "ATR", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class AchievementTaskReward
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "q")]
|
||||||
|
public int RewardQuantity;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "p")]
|
||||||
|
public int PointTypeID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "r")]
|
||||||
|
public int RewardID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "pg")]
|
||||||
|
public int ProductGroupID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "a")]
|
||||||
|
public int AchievementInfoID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "ii", IsNullable = true)]
|
||||||
|
public int? ItemID;
|
||||||
|
}
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using System.Xml.Serialization;
|
|
||||||
|
|
||||||
namespace sodoff.Schema;
|
|
||||||
|
|
||||||
[XmlRoot(ElementName = "AchievementsTaskInfo", Namespace = "")]
|
|
||||||
[Serializable]
|
|
||||||
public class AchievementsTaskInfo
|
|
||||||
{
|
|
||||||
[XmlElement(ElementName = "TID")]
|
|
||||||
public int TaskID;
|
|
||||||
|
|
||||||
[XmlElement(ElementName = "AR")]
|
|
||||||
public AchievementReward[] AchievementReward;
|
|
||||||
}
|
|
||||||
11
src/Schema/ArrayOfAchievementTaskInfo.cs
Normal file
11
src/Schema/ArrayOfAchievementTaskInfo.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "ArrayOfAchievementTaskInfo", Namespace = "http://api.jumpstart.com/")]
|
||||||
|
[Serializable]
|
||||||
|
public class ArrayOfAchievementTaskInfo
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "AchievementTaskInfo")]
|
||||||
|
public AchievementTaskInfo[] AchievementTaskInfo;
|
||||||
|
}
|
||||||
11
src/Schema/ArrayOfUserAchievementTask.cs
Normal file
11
src/Schema/ArrayOfUserAchievementTask.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "ArrayOfUserAchievementTask", Namespace = "http://api.jumpstart.com/")]
|
||||||
|
[Serializable]
|
||||||
|
public class ArrayOfUserAchievementTask
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "UserAchievementTask")]
|
||||||
|
public UserAchievementTask[] UserAchievementTask;
|
||||||
|
}
|
||||||
10
src/Schema/ArrayOfUserRatingRankInfo.cs
Normal file
10
src/Schema/ArrayOfUserRatingRankInfo.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "ArrayOfUserRatingRankInfo", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class ArrayOfUserRatingRankInfo {
|
||||||
|
[XmlElement(ElementName = "UserRatingRankInfo")]
|
||||||
|
public UserRatingRankInfo[] UserRatingRankInfo;
|
||||||
|
}
|
||||||
52
src/Schema/Group.cs
Normal file
52
src/Schema/Group.cs
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
[XmlRoot(ElementName = "GP", IsNullable = true)]
|
||||||
|
public class Group {
|
||||||
|
[XmlElement(ElementName = "G", IsNullable = false)]
|
||||||
|
public string GroupID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "N", IsNullable = false)]
|
||||||
|
public string Name;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "D", IsNullable = false)]
|
||||||
|
public string Description;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "T", IsNullable = false)]
|
||||||
|
public GroupType Type;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "O", IsNullable = true)]
|
||||||
|
public string OwnerID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "L", IsNullable = true)]
|
||||||
|
public string Logo;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "C", IsNullable = true)]
|
||||||
|
public string Color;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "M", IsNullable = true)]
|
||||||
|
public int? MemberLimit;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "TC", IsNullable = true)]
|
||||||
|
public int? TotalMemberCount;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "A", IsNullable = false)]
|
||||||
|
public bool Active;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "P", IsNullable = true)]
|
||||||
|
public string ParentGroupID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "PS", IsNullable = true)]
|
||||||
|
public int? Points;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "RK", IsNullable = true)]
|
||||||
|
public int? Rank;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "RT", IsNullable = true)]
|
||||||
|
public int? RankTrend;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "CD")]
|
||||||
|
public DateTime CreateDate;
|
||||||
|
}
|
||||||
18
src/Schema/GroupMembershipStatus.cs
Normal file
18
src/Schema/GroupMembershipStatus.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
public enum GroupMembershipStatus {
|
||||||
|
[XmlEnum("1")]
|
||||||
|
APPROVAL_PENDING = 1,
|
||||||
|
[XmlEnum("2")]
|
||||||
|
APPROVED,
|
||||||
|
[XmlEnum("3")]
|
||||||
|
REJECTED,
|
||||||
|
[XmlEnum("4")]
|
||||||
|
SELF_BLOCKED,
|
||||||
|
[XmlEnum("5")]
|
||||||
|
ALREADY_MEMBER,
|
||||||
|
[XmlEnum("6")]
|
||||||
|
OTHERS
|
||||||
|
}
|
||||||
20
src/Schema/GroupType.cs
Normal file
20
src/Schema/GroupType.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "GroupType")]
|
||||||
|
[Serializable]
|
||||||
|
public enum GroupType {
|
||||||
|
[XmlEnum("0")]
|
||||||
|
None = 0,
|
||||||
|
[XmlEnum("1")]
|
||||||
|
System = 1,
|
||||||
|
[XmlEnum("2")]
|
||||||
|
Public = 2,
|
||||||
|
[XmlEnum("3")]
|
||||||
|
MembersOnly = 3,
|
||||||
|
[XmlEnum("4")]
|
||||||
|
Private = 4,
|
||||||
|
[XmlEnum("5")]
|
||||||
|
Others = 5
|
||||||
|
}
|
||||||
9
src/Schema/JoinGroupResult.cs
Normal file
9
src/Schema/JoinGroupResult.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "JoinGroupResult", IsNullable = true, Namespace = "")]
|
||||||
|
public class JoinGroupResult {
|
||||||
|
[XmlElement(ElementName = "GroupStatus")]
|
||||||
|
public GroupMembershipStatus GroupStatus;
|
||||||
|
}
|
||||||
25
src/Schema/RatingInfo.cs
Normal file
25
src/Schema/RatingInfo.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "RatingInfo", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class RatingInfo {
|
||||||
|
[XmlElement(ElementName = "ID")]
|
||||||
|
public int Id;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "UID")]
|
||||||
|
public Guid OwnerUid;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "CID")]
|
||||||
|
public int CategoryID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "EID")]
|
||||||
|
public int? RatedEntityID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "RV")]
|
||||||
|
public int Value;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "RD")]
|
||||||
|
public DateTime Date;
|
||||||
|
}
|
||||||
41
src/Schema/RatingRankInfo.cs
Normal file
41
src/Schema/RatingRankInfo.cs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
using sodoff.Model;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "RatingRankInfo", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class RatingRankInfo {
|
||||||
|
|
||||||
|
public RatingRankInfo() {}
|
||||||
|
public RatingRankInfo(RatingRank rank) {
|
||||||
|
Id = rank.Id;
|
||||||
|
CategoryID = rank.CategoryID;
|
||||||
|
RatedEntityID = rank.RatedEntityID??0;
|
||||||
|
Rank = rank.Rank;
|
||||||
|
RatingAverage = rank.RatingAverage;
|
||||||
|
TotalVotes = rank.Ratings.Count;
|
||||||
|
UpdateDate = rank.UpdateDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "ID")]
|
||||||
|
public int Id;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "CID")]
|
||||||
|
public int CategoryID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "EID")]
|
||||||
|
public int? RatedEntityID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "R")]
|
||||||
|
public int Rank;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "RA")]
|
||||||
|
public float RatingAverage;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "TV")]
|
||||||
|
public int TotalVotes;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "UD")]
|
||||||
|
public DateTime UpdateDate;
|
||||||
|
}
|
||||||
23
src/Schema/UserAchievementTask.cs
Normal file
23
src/Schema/UserAchievementTask.cs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "UAT", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class UserAchievementTask
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "gid")]
|
||||||
|
public int AchievementTaskGroupID;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "aq", IsNullable = true)]
|
||||||
|
public int? AchievedQuantity; // current points value
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "nl", IsNullable = true)]
|
||||||
|
public int? NextLevel; // next level number
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "qr", IsNullable = true)]
|
||||||
|
public int? QuantityRequired; // points need to reach next level
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "ntr", IsNullable = true)]
|
||||||
|
public AchievementTaskReward[] NextLevelAchievementRewards;
|
||||||
|
}
|
||||||
13
src/Schema/UserRatingRankInfo.cs
Normal file
13
src/Schema/UserRatingRankInfo.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace sodoff.Schema;
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "URRI", Namespace = "")]
|
||||||
|
[Serializable]
|
||||||
|
public class UserRatingRankInfo {
|
||||||
|
[XmlElement(ElementName = "RI")]
|
||||||
|
public RatingRankInfo RankInfo;
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "RUID")]
|
||||||
|
public Guid RatedUserID;
|
||||||
|
}
|
||||||
@ -82,7 +82,7 @@ namespace sodoff.Services {
|
|||||||
viking.AchievementPoints.Add(xpPoints);
|
viking.AchievementPoints.Add(xpPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
int initialPoints = xpPoints.Value;
|
int initialPoints = xpPoints.Value;
|
||||||
xpPoints.Value += value ?? 0;
|
xpPoints.Value += value ?? 0;
|
||||||
|
|
||||||
if (value > 0 && initialPoints > xpPoints.Value) {
|
if (value > 0 && initialPoints > xpPoints.Value) {
|
||||||
@ -154,17 +154,43 @@ namespace sodoff.Services {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AchievementReward[] ApplyAchievementRewardsByTask(Viking viking, AchievementTask task) {
|
public AchievementTaskSetResponse ApplyAchievementRewardsByTask(Viking viking, int taskID, uint gameVersion) {
|
||||||
var rewards = achievementStore.GetAchievementRewardsByTask(task.TaskID);
|
AchievementTaskState? achievementTaskState = viking.AchievementTaskStates.FirstOrDefault(x => x.TaskId == taskID);
|
||||||
if (rewards != null) {
|
int pointValue = (achievementTaskState?.Points ?? 0);
|
||||||
return ApplyAchievementRewards(viking, rewards);
|
var achievementInfo = achievementStore.GetAchievementTaskInfo(taskID, gameVersion, pointValue);
|
||||||
} else {
|
var lastLevelCompleted = false;
|
||||||
return new AchievementReward[0];
|
|
||||||
|
if (achievementInfo == null) return new AchievementTaskSetResponse();
|
||||||
|
|
||||||
|
if (pointValue < achievementInfo.PointValue) { // limit points stored value to max points value in achievement tasks
|
||||||
|
pointValue += 1;
|
||||||
|
lastLevelCompleted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var rewards = (achievementInfo.Reproducible || pointValue == achievementInfo.PointValue)
|
||||||
|
? ApplyAchievementRewards(viking, achievementInfo.Rewards)
|
||||||
|
: Array.Empty<AchievementReward>();
|
||||||
|
|
||||||
|
if (achievementTaskState == null)
|
||||||
|
viking.AchievementTaskStates.Add(new AchievementTaskState { TaskId = taskID, Points = pointValue });
|
||||||
|
else
|
||||||
|
achievementTaskState.Points = pointValue;
|
||||||
|
|
||||||
|
ctx.SaveChanges();
|
||||||
|
|
||||||
|
return new AchievementTaskSetResponse {
|
||||||
|
Success = true,
|
||||||
|
UserMessage = true, // TODO: placeholder
|
||||||
|
AchievementName = achievementInfo.Name,
|
||||||
|
Level = achievementInfo.Level,
|
||||||
|
AchievementTaskGroupID = achievementInfo.TaskGroupID,
|
||||||
|
LastLevelCompleted = lastLevelCompleted,
|
||||||
|
AchievementInfoID = achievementInfo.InfoID,
|
||||||
|
AchievementRewards = rewards
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserGameCurrency GetUserCurrency(Viking viking) {
|
public UserGameCurrency GetUserCurrency(Viking viking) {
|
||||||
// TODO: return real values (after implement currency collecting methods)
|
|
||||||
int? coins = viking.AchievementPoints.FirstOrDefault(x => x.Type == (int)AchievementPointTypes.GameCurrency)?.Value;
|
int? coins = viking.AchievementPoints.FirstOrDefault(x => x.Type == (int)AchievementPointTypes.GameCurrency)?.Value;
|
||||||
int? gems = viking.AchievementPoints.FirstOrDefault(x => x.Type == (int)AchievementPointTypes.CashCurrency)?.Value;
|
int? gems = viking.AchievementPoints.FirstOrDefault(x => x.Type == (int)AchievementPointTypes.CashCurrency)?.Value;
|
||||||
if (coins is null) {
|
if (coins is null) {
|
||||||
@ -206,6 +232,7 @@ namespace sodoff.Services {
|
|||||||
DateRange = new DateRange()
|
DateRange = new DateRange()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayOfUserAchievementInfo GetTopAchievementBuddies(UserAchievementInfoRequest request) {
|
public ArrayOfUserAchievementInfo GetTopAchievementBuddies(UserAchievementInfoRequest request) {
|
||||||
// TODO: Type and mode are currently ignored
|
// TODO: Type and mode are currently ignored
|
||||||
List<UserAchievementInfo> achievementInfo = new();
|
List<UserAchievementInfo> achievementInfo = new();
|
||||||
@ -235,5 +262,47 @@ namespace sodoff.Services {
|
|||||||
UserAchievementInfo = achievementInfo.ToArray()
|
UserAchievementInfo = achievementInfo.ToArray()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserAchievementTask[] GetUserAchievementTask(Viking viking, uint gameVersion) {
|
||||||
|
List <UserAchievementTask> userAchievementTasks = new();
|
||||||
|
|
||||||
|
foreach (var achievementsGroup in achievementStore.GetAchievementsGroupIdToTaskId(gameVersion)) {
|
||||||
|
List<AchievementTaskReward> rewards = new();
|
||||||
|
int nextLevel = 0;
|
||||||
|
int points = viking.AchievementTaskStates.FirstOrDefault(x => x.TaskId == achievementsGroup.Value)?.Points ?? 0;
|
||||||
|
var achievementInfo = achievementStore.GetAchievementTaskInfoForNextLevel(
|
||||||
|
achievementsGroup.Value, gameVersion, points, achievementsGroup.Key
|
||||||
|
);
|
||||||
|
|
||||||
|
if (achievementInfo != null) {
|
||||||
|
nextLevel = achievementInfo.Level;
|
||||||
|
if (achievementInfo.Rewards != null) {
|
||||||
|
foreach (var r in achievementInfo.Rewards) {
|
||||||
|
rewards.Add(new AchievementTaskReward {
|
||||||
|
RewardQuantity = r.Amount ?? 0,
|
||||||
|
PointTypeID = (int)(r.PointTypeID),
|
||||||
|
ItemID = r.ItemID,
|
||||||
|
RewardID = r.RewardID,
|
||||||
|
AchievementInfoID = achievementInfo.InfoID
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
achievementInfo = achievementStore.GetAchievementTaskInfoForCurrentLevel(
|
||||||
|
achievementsGroup.Value, gameVersion, points, achievementsGroup.Key
|
||||||
|
);
|
||||||
|
nextLevel = achievementInfo.Level + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
userAchievementTasks.Add(new UserAchievementTask {
|
||||||
|
AchievementTaskGroupID = achievementsGroup.Key,
|
||||||
|
AchievedQuantity = Math.Min(points, achievementInfo.PointValue),
|
||||||
|
NextLevel = nextLevel,
|
||||||
|
QuantityRequired = Math.Max(0, achievementInfo.PointValue - points),
|
||||||
|
NextLevelAchievementRewards = rewards.ToArray()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return userAchievementTasks.ToArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,56 +4,104 @@ using sodoff.Util;
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace sodoff.Services {
|
namespace sodoff.Services {
|
||||||
public class AchievementStoreSingleton {
|
public class AchievementStoreSingleton {
|
||||||
|
class AchievementTasks {
|
||||||
|
public Dictionary<int, List<AchievementTaskInfo>> achievementsRewardByTask = new();
|
||||||
|
public readonly ReadOnlyDictionary<int, int> achievementsGroupIdToTaskId;
|
||||||
|
|
||||||
|
public AchievementTasks(string xmlFile) {
|
||||||
|
AchievementTaskInfo[] allAchievementTaskInfo = XmlUtil.DeserializeXml<AchievementTaskInfo[]>(XmlUtil.ReadResourceXmlString(xmlFile));
|
||||||
|
Dictionary<int, int> achievementsGroupIdToTaskIdTmp = new();
|
||||||
|
foreach (var achievementTaskInfo in allAchievementTaskInfo) {
|
||||||
|
if (!achievementsRewardByTask.ContainsKey(achievementTaskInfo.TaskID)) {
|
||||||
|
achievementsRewardByTask[achievementTaskInfo.TaskID] = new();
|
||||||
|
}
|
||||||
|
achievementsRewardByTask[achievementTaskInfo.TaskID].Add(achievementTaskInfo);
|
||||||
|
achievementsGroupIdToTaskIdTmp[achievementTaskInfo.TaskGroupID] = achievementTaskInfo.TaskID;
|
||||||
|
}
|
||||||
|
achievementsGroupIdToTaskId = new(achievementsGroupIdToTaskIdTmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Dictionary<AchievementPointTypes, UserRank[]> ranks = new();
|
Dictionary<AchievementPointTypes, UserRank[]> ranks = new();
|
||||||
Dictionary<int, AchievementReward[]> achivmentsRewardByID = new();
|
Dictionary<int, AchievementReward[]> achievementsRewardByID = new();
|
||||||
Dictionary<int, AchievementReward[]> achivmentsRewardByTask = new();
|
Dictionary<int, List<AchievementTaskInfo>> achievementsRewardByTask = new();
|
||||||
|
Dictionary<uint, AchievementTasks> achievementsTasks = new();
|
||||||
|
|
||||||
int dragonAdultMinXP;
|
int dragonAdultMinXP;
|
||||||
int dragonTitanMinXP;
|
int dragonTitanMinXP;
|
||||||
|
|
||||||
public AchievementStoreSingleton() {
|
public AchievementStoreSingleton() {
|
||||||
|
ArrayOfUserRank allranks = XmlUtil.DeserializeXml<ArrayOfUserRank>(XmlUtil.ReadResourceXmlString("ranks.allranks_sod"));
|
||||||
ArrayOfUserRank allranks = XmlUtil.DeserializeXml<ArrayOfUserRank>(XmlUtil.ReadResourceXmlString("allranks"));
|
|
||||||
foreach (var pointType in Enum.GetValues<AchievementPointTypes>()) {
|
foreach (var pointType in Enum.GetValues<AchievementPointTypes>()) {
|
||||||
ranks[pointType] = allranks.UserRank.Where(r => r.PointTypeID == pointType).ToArray();
|
ranks[pointType] = allranks.UserRank.Where(r => r.PointTypeID == pointType).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
AchievementsIdInfo[] allAchievementsIdInfo = XmlUtil.DeserializeXml<AchievementsIdInfo[]>(XmlUtil.ReadResourceXmlString("achievementsids"));
|
AchievementsIdInfo[] allAchievementsIdInfo = XmlUtil.DeserializeXml<AchievementsIdInfo[]>(XmlUtil.ReadResourceXmlString("achievements.achievementid_sod"));
|
||||||
foreach (var achievementsIdInfo in allAchievementsIdInfo) {
|
foreach (var achievementsIdInfo in allAchievementsIdInfo) {
|
||||||
achivmentsRewardByID[achievementsIdInfo.AchievementID] = achievementsIdInfo.AchievementReward;
|
achievementsRewardByID[achievementsIdInfo.AchievementID] = achievementsIdInfo.AchievementReward;
|
||||||
}
|
}
|
||||||
|
|
||||||
AchievementsTaskInfo[] allAchievementsTaskInfo = XmlUtil.DeserializeXml<AchievementsTaskInfo[]>(XmlUtil.ReadResourceXmlString("achievementstasks"));
|
achievementsTasks[ClientVersion.Min_SoD] = new AchievementTasks("achievements.achievementtaskinfo_sod");
|
||||||
foreach (var achievementsTaskInfo in allAchievementsTaskInfo) {
|
achievementsTasks[ClientVersion.MaM] = new AchievementTasks("achievements.achievementtaskinfo_mam");
|
||||||
achivmentsRewardByTask[achievementsTaskInfo.TaskID] = achievementsTaskInfo.AchievementReward;
|
achievementsTasks[ClientVersion.MB] = new AchievementTasks("achievements.achievementtaskinfo_mb");
|
||||||
}
|
achievementsTasks[ClientVersion.EMD] = new AchievementTasks("achievements.achievementtaskinfo_emd");
|
||||||
|
achievementsTasks[ClientVersion.SS] = new AchievementTasks("achievements.achievementtaskinfo_ss");
|
||||||
|
achievementsTasks[ClientVersion.WoJS] = new AchievementTasks("achievements.achievementtaskinfo_wojs");
|
||||||
|
|
||||||
dragonAdultMinXP = ranks[AchievementPointTypes.DragonXP][10].Value;
|
dragonAdultMinXP = ranks[AchievementPointTypes.DragonXP][10].Value;
|
||||||
dragonTitanMinXP = ranks[AchievementPointTypes.DragonXP][20].Value;
|
dragonTitanMinXP = ranks[AchievementPointTypes.DragonXP][20].Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetRankFromXP(int? xpPoints, AchievementPointTypes type) {
|
public int GetRankFromXP(int? xpPoints, AchievementPointTypes type) {
|
||||||
return ranks[type].Count(r => r.Value <= xpPoints);
|
return ranks[type].Count(r => r.Value <= xpPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AchievementReward[]? GetAchievementRewardsById(int achievementID) {
|
public AchievementReward[]? GetAchievementRewardsById(int achievementID) {
|
||||||
if (achivmentsRewardByID.ContainsKey(achievementID)) {
|
if (achievementsRewardByID.ContainsKey(achievementID)) {
|
||||||
return achivmentsRewardByID[achievementID];
|
return achievementsRewardByID[achievementID];
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AchievementReward[]? GetAchievementRewardsByTask(int taskID) {
|
public ReadOnlyDictionary<int, int> GetAchievementsGroupIdToTaskId(uint gameVersion) {
|
||||||
if (achivmentsRewardByTask.ContainsKey(taskID)) {
|
gameVersion = GameVersionForTasks(gameVersion);
|
||||||
return achivmentsRewardByTask[taskID];
|
if (achievementsTasks.ContainsKey(gameVersion))
|
||||||
} else {
|
return achievementsTasks[gameVersion].achievementsGroupIdToTaskId;
|
||||||
return null;
|
return new ReadOnlyDictionary<int, int>(new Dictionary<int, int>());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AchievementTaskInfo>? GetAllAchievementTaskInfo(int taskID, uint gameVersion) {
|
||||||
|
gameVersion = GameVersionForTasks(gameVersion);
|
||||||
|
if (achievementsTasks.ContainsKey(gameVersion) && achievementsTasks[gameVersion].achievementsRewardByTask.ContainsKey(taskID)) {
|
||||||
|
return achievementsTasks[gameVersion].achievementsRewardByTask[taskID];
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AchievementTaskInfo? GetAchievementTaskInfo(int taskID, uint gameVersion, int points, int groupID = -1) {
|
||||||
|
var achievementTasks = GetAchievementTaskInfoForNextLevel(taskID, gameVersion, points, groupID);
|
||||||
|
if (achievementTasks != null)
|
||||||
|
return achievementTasks;
|
||||||
|
return GetAchievementTaskInfoForCurrentLevel(taskID, gameVersion, points, groupID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AchievementTaskInfo? GetAchievementTaskInfoForNextLevel(int taskID, uint gameVersion, int points, int groupID = -1) {
|
||||||
|
var achievementTasks = GetAllAchievementTaskInfo(taskID, gameVersion)?.Where(x => x.PointValue > points && (groupID < 0 || x.TaskGroupID == groupID));
|
||||||
|
if (achievementTasks != null && achievementTasks.Count() > 0)
|
||||||
|
return achievementTasks.FirstOrDefault(x => x.PointValue == achievementTasks.Min(x => x.PointValue));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AchievementTaskInfo? GetAchievementTaskInfoForCurrentLevel(int taskID, uint gameVersion, int points, int groupID = -1) {
|
||||||
|
var achievementTasks = GetAllAchievementTaskInfo(taskID, gameVersion)?.Where(x => x.PointValue <= points && (groupID < 0 || x.TaskGroupID == groupID));
|
||||||
|
if (achievementTasks != null && achievementTasks.Count() > 0)
|
||||||
|
return achievementTasks?.FirstOrDefault(x => x.PointValue == achievementTasks.Max(x => x.PointValue));
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetUpdatedDragonXP(int dragonXP, int growthState) {
|
public int GetUpdatedDragonXP(int dragonXP, int growthState) {
|
||||||
@ -66,5 +114,13 @@ namespace sodoff.Services {
|
|||||||
}
|
}
|
||||||
return dragonXP;
|
return dragonXP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private uint GameVersionForTasks(uint gameVersion) {
|
||||||
|
// all SoD version of SoD using the same Tasks database
|
||||||
|
if ((gameVersion & ClientVersion.Min_SoD) == 0xa0000000) return ClientVersion.Min_SoD;
|
||||||
|
// all version of WoJS (including lands) using the same Tasks database
|
||||||
|
if (gameVersion <= ClientVersion.Max_OldJS && (gameVersion & ClientVersion.WoJS) != 0) return ClientVersion.WoJS;
|
||||||
|
return gameVersion;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,26 +16,30 @@ public class MissionStoreSingleton {
|
|||||||
private int[] upcomingMissionsWoJS;
|
private int[] upcomingMissionsWoJS;
|
||||||
|
|
||||||
public MissionStoreSingleton() {
|
public MissionStoreSingleton() {
|
||||||
ServerMissionArray missionArray = XmlUtil.DeserializeXml<ServerMissionArray>(XmlUtil.ReadResourceXmlString("missions"));
|
ServerMissionArray missionArray = XmlUtil.DeserializeXml<ServerMissionArray>(XmlUtil.ReadResourceXmlString("missions.missions_sod"));
|
||||||
DefaultMissions defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("defaultmissionlist"));
|
DefaultMissions defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("missions.defaultmissionlist"));
|
||||||
foreach (var mission in missionArray.MissionDataArray) {
|
foreach (var mission in missionArray.MissionDataArray) {
|
||||||
SetUpRecursive(mission);
|
SetUpRecursive(mission);
|
||||||
}
|
}
|
||||||
activeMissions = defaultMissions.Active;
|
activeMissions = defaultMissions.Active;
|
||||||
upcomingMissions = defaultMissions.Upcoming;
|
upcomingMissions = defaultMissions.Upcoming;
|
||||||
|
|
||||||
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("defaultmissionlistv1"));
|
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("missions.defaultmissionlist_sod_v1"));
|
||||||
activeMissionsV1 = defaultMissions.Active;
|
activeMissionsV1 = defaultMissions.Active;
|
||||||
upcomingMissionsV1 = defaultMissions.Upcoming;
|
upcomingMissionsV1 = defaultMissions.Upcoming;
|
||||||
|
|
||||||
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("defaultmissionlistmam"));
|
missionArray = XmlUtil.DeserializeXml<ServerMissionArray>(XmlUtil.ReadResourceXmlString("missions.missions_mam"));
|
||||||
|
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("missions.defaultmissionlist_mam"));
|
||||||
|
foreach (var mission in missionArray.MissionDataArray) {
|
||||||
|
SetUpRecursive(mission);
|
||||||
|
}
|
||||||
activeMissionsMaM = defaultMissions.Active;
|
activeMissionsMaM = defaultMissions.Active;
|
||||||
upcomingMissionsMaM = defaultMissions.Upcoming;
|
upcomingMissionsMaM = defaultMissions.Upcoming;
|
||||||
|
|
||||||
missionArray = XmlUtil.DeserializeXml<ServerMissionArray>(XmlUtil.ReadResourceXmlString("missions_wojs"));
|
missionArray = XmlUtil.DeserializeXml<ServerMissionArray>(XmlUtil.ReadResourceXmlString("missions.missions_wojs"));
|
||||||
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("defaultmissionlist_wojs"));
|
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("missions.defaultmissionlist_wojs"));
|
||||||
foreach (var mission in missionArray.MissionDataArray) {
|
foreach (var mission in missionArray.MissionDataArray) {
|
||||||
SetUpRecursive(mission); // TODO: use separate missions dict for WoJS (?)
|
SetUpRecursive(mission);
|
||||||
}
|
}
|
||||||
activeMissionsWoJS = defaultMissions.Active;
|
activeMissionsWoJS = defaultMissions.Active;
|
||||||
upcomingMissionsWoJS = defaultMissions.Upcoming;
|
upcomingMissionsWoJS = defaultMissions.Upcoming;
|
||||||
|
|||||||
@ -29,6 +29,10 @@ public class ClientVersion {
|
|||||||
apiKey == "6738196d-2a2c-4ef8-9b6e-1252c6ec7325"
|
apiKey == "6738196d-2a2c-4ef8-9b6e-1252c6ec7325"
|
||||||
) {
|
) {
|
||||||
return MB;
|
return MB;
|
||||||
|
} else if (
|
||||||
|
apiKey == "dd602cf1-cc98-4738-9a0a-56dde3026947"
|
||||||
|
) {
|
||||||
|
return EMD;
|
||||||
} else if (
|
} else if (
|
||||||
apiKey == "34b0ae13-eccc-4d64-b6d0-733d2562080e"
|
apiKey == "34b0ae13-eccc-4d64-b6d0-733d2562080e"
|
||||||
) {
|
) {
|
||||||
|
|||||||
@ -36,59 +36,6 @@
|
|||||||
</When>
|
</When>
|
||||||
</Choose>
|
</Choose>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Remove="Resources\achievementtaskinfo.xml" />
|
|
||||||
<None Remove="Resources\items.xml" />
|
|
||||||
<None Remove="Resources\missions.xml" />
|
|
||||||
<None Remove="Resources\mmo.xml" />
|
|
||||||
<None Remove="Resources\displaynames.xml" />
|
|
||||||
<None Remove="Resources\rankattrib.xml" />
|
|
||||||
<None Remove="Resources\rankattrib_mb.xml" />
|
|
||||||
<None Remove="Resources\rewardmultiplier.xml" />
|
|
||||||
<None Remove="Resources\store.xml" />
|
|
||||||
<None Remove="Resources\allranks.xml" />
|
|
||||||
<None Remove="Resources\allranks_mb.xml" />
|
|
||||||
<None Remove="Resources\allranks_wojs.xml" />
|
|
||||||
<None Remove="Resources\achievementsids.xml" />
|
|
||||||
<None Remove="Resources\achievementstasks.xml" />
|
|
||||||
<None Remove="Resources\defaultmissionlist.xml" />
|
|
||||||
<None Remove="Resources\defaultmissionlistv1.xml" />
|
|
||||||
<None Remove="Resources\defaultmissionlistmam.xml" />
|
|
||||||
<None Remove="Resources\defaultmissionlist_wojs.xml" />
|
|
||||||
<None Remove="Resources\questiondata.xml" />
|
|
||||||
<None Remove="Resources\content_jukebox.xml" />
|
|
||||||
<None Remove="Resources\content_movie.xml" />
|
|
||||||
<None Remove="Resources\content_blastermovie.xml" />
|
|
||||||
<None Remove="Resources\content_arcade.xml" />
|
|
||||||
<None Remove="Resources\content_learning.xml" />
|
|
||||||
<None Remove="Resources\announcements_wojs.xml" />
|
|
||||||
<None Remove="Resources\announcements_ss.xml" />
|
|
||||||
<None Remove="Resources\profiletags.xml" />
|
|
||||||
<None Remove="Resources\defaulthouse.xml" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Update="Resources\childlist.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="Resources\store.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="Resources\items.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="Resources\tutorialmission.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="Resources\achievementsids.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="Resources\achievementstasks.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="Resources\dtrewards.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Resources\mmo.xml">
|
<EmbeddedResource Include="Resources\mmo.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
@ -99,31 +46,43 @@
|
|||||||
<EmbeddedResource Include="Resources\rewardmultiplier.xml">
|
<EmbeddedResource Include="Resources\rewardmultiplier.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\rankattrib.xml">
|
<EmbeddedResource Include="Resources\ranks\rankattrib.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\rankattrib_mb.xml">
|
<EmbeddedResource Include="Resources\ranks\rankattrib_mb.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Resources\achievementtaskinfo.xml">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\store.xml">
|
<EmbeddedResource Include="Resources\store.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\allranks.xml">
|
<EmbeddedResource Include="Resources\ranks\allranks_sod.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\allranks_mb.xml">
|
<EmbeddedResource Include="Resources\ranks\allranks_mb.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\allranks_wojs.xml">
|
<EmbeddedResource Include="Resources\ranks\allranks_wojs.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\achievementsids.xml">
|
<EmbeddedResource Include="Resources\achievements\achievementid_sod.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\achievementstasks.xml">
|
<EmbeddedResource Include="Resources\achievements\achievementtaskinfo_sod.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Resources\achievements\achievementtaskinfo_mam.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Resources\achievements\achievementtaskinfo_mb.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Resources\achievements\achievementtaskinfo_emd.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Resources\achievements\achievementtaskinfo_ss.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Resources\achievements\achievementtaskinfo_wojs.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\dtrewards.xml">
|
<EmbeddedResource Include="Resources\dtrewards.xml">
|
||||||
@ -132,22 +91,25 @@
|
|||||||
<EmbeddedResource Include="Resources\items.xml">
|
<EmbeddedResource Include="Resources\items.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\missions.xml">
|
<EmbeddedResource Include="Resources\missions\missions_sod.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\missions_wojs.xml">
|
<EmbeddedResource Include="Resources\missions\missions_mam.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\defaultmissionlist.xml">
|
<EmbeddedResource Include="Resources\missions\missions_wojs.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\defaultmissionlistv1.xml">
|
<EmbeddedResource Include="Resources\missions\defaultmissionlist.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\defaultmissionlistmam.xml">
|
<EmbeddedResource Include="Resources\missions\defaultmissionlist_sod_v1.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\defaultmissionlist_wojs.xml">
|
<EmbeddedResource Include="Resources\missions\defaultmissionlist_mam.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Resources\missions\defaultmissionlist_wojs.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\questiondata.xml">
|
<EmbeddedResource Include="Resources\questiondata.xml">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user