rework achievements system:
- support for Achievements page in journal
- register achievement tasks in database to avoid duplicate rewards and to register progress (achievement levels)
- better achievement tasks xml database (for multiple games)
- support for older games SetUserAchievementTask (V1)
- add some missed achievement IDs
- move achievement data to Resources/achievements/
additionally:
- add mmo zones for MaM and some additional mmo zones for EMD
- move missions Resources into Resources/missions/
- split SoD/MaM missions into separte files
- move rank data to Resources/ranks/
- cleanup sodoff.csproj
SQLite database schema changes:
```
CREATE TABLE "AchievementTaskState" (
"VikingId" INTEGER NOT NULL,
"TaskId" INTEGER NOT NULL,
"Points" INTEGER NOT NULL,
CONSTRAINT "PK_AchievementTaskState" PRIMARY KEY("TaskId","VikingId"),
CONSTRAINT "FK_AchievementTaskState_Vikings_VikingId" FOREIGN KEY("VikingId") REFERENCES "Vikings"("Id") ON DELETE CASCADE
);
```
* Mutt Couch Fixes
Removed duplicate mutt from the couch.
Mutts on couch in other players' mutt pods will now reflect that player's account.
* Buddies list will now appear on the sidebar, making the mutt pod tutorial possible.
---------
* Fixed some issues that were pointed out.
* ContentController.GetUnselectedPetByTypes now uses regular IF check for setting owner viking.
* remove unused apiKey from GetActiveRaisedPet args
- use generic XML save system (SavedData) for Houses
- add support for return different stores for WoJS 1.1 and 1.21 (based on ApiKey)
- change values of ClientVersion / gameVersion for non SoD games and some version checks logic
- common function for Viking creation for call in RegisterChild and in RegisterParent
- add SS (standard) apiKey and WoJS 1.21 (custom) apiKey
- Add ``UserProfileTag`` Placeholder
- Add Placeholder Profile Tags
- Reimplement ``GetContentByTypeByUser``
- Fix ``GetContentByTypeByUser``
- Add Test Movie Theater Content
- Add Real Movie Content
- Add Big Cat
- Fix CatURL
- Add Arcade Content
- Add Proper Response For Arcade Content
- Replace ContentInfo With ContentInfoData
- Still Trying Arcade Things
- Update Jukebox
- Movie Theater Thumbnails
- Replace All Content And MMO URL's To Point To New Server
- Replace https With http And Do Similar Action To ``allranks_wojs``
- Fix Typo
- Add All Other MainStreet Missions
- Add WoJS Ranks
- Add Learning Content (Brain Arcade)
- Restore Original Jukebox Content
- Add External Games And Fruit Salad Chop To Arcade Content
- Update Learning Content
* old tutorial, works on 3.0.0 (partial on 2.9 also)
thanks to BrokenTV for quest data
* support for Magic And Mythies
* oldclients - avatar fix for 3.12
* register and create viking on 1.13
* fix Data Validation Failed on viking create in 2.9
* fix tutorial on 2.9
- fix opening cryptex cage
- replace initial dialogs (Grimmel version) by old version (based on wiki info)
- replace final dialogs (Harald bomb reference)
* missions support and better init profile on 1.13
- add support for mission in old SoD
- add stub for "New Student" quest for pre 2.3
- properly set HubBerkDOFirstCommon (via tutorial/quest, not via RegisterChild)
- this allow show intro movie
- allow select and hatch first dragon (in hatchery as part of New Student quest)
- this also fix stables on 1.13
* disable mmo on old clients
- add task and id reward xml databases
- thanks to Project Edge community for sniffed network data!
- implement SetAchievementAndGetReward, SetUserAchievementAndGetReward
- partially implement SetUserAchievementTask
- move rewards logic to AchievementService
- show real value of farming and fishing XP
- show UDP points
Co-authored-by: Spirtix <michal.prazak1@gmail.com>
* GetPetAchievementsByUserID and enum for PointTypes
* add RankService
* use AchievementPointTypes for PointTypeID
... insted of int in schema
* support for player XP, fix dragon XP
- database table
- return correct value in API call
- save XP from mission
* rename RankService to AchievementService
* use addAchievementPoints for all non item reward
this could be a good place for wallet servicing too ... so currency reward too
* return const XP value for farming and fishing
we don't have gathering method for those XPs yet
* fix avatar schema, fix coding style