StringComparison is not supported by all db providers
This uses manual comparisons instead, which is not ideal performance wise, but works on all providers
- fish trap on the farm now gives a reward
- added support for revard via achievements in RoomService
- added achievements for fish trap rewards
- fixed DuplicateUserName message on SoD 1.13
- not encrypted responses with correct schema in V3/RegistrationWebService.asmx/RegisterChild
- fixed putting racing sheep into farm
- implemented /ContentWebService.asmx/RedeemItems
thanks to @ABrokenTV for debug these issues
* update items and dragons id on import
* check for viking name unique
* add unique constraints in database
* add simple import/export html form for localhosted srvers
* this is bugfix for upcoming missions issue in SoD 2.9 after 60cc00d
* also removed TODO because ProductGroupID is not related to mission.GroupID and ProductGroupID filtering is covered by gameVersion
* add anniversary items to store
* remove "new" mark for most items
* reorder event quest experience ticket items (to keep the chronological order in the store)
* add Light Fury Dragon Armor to DT rewards
- allow to add items to store while using replace action in server-side mods
- fixed wrong (inverted) logic for LastLevelCompleted
- fixed 'already an open DataReader' isse on GetTopRated* endpoints
- disabled AchievementTaskID 37 (WoJS) due to causing bug
* add night lights hats and cropped hair to store
* re-add dragon nip to play tools menu
* add axe as reward from 1.x tutorial (fixes "lost axe" issue while leave game during wilderness training mission)
* add support for old missions API (aka "steps missions")
* config option to disable loading non SoD Data (used only for missions and achievements for now)
* make AuthenticateUser endpoint compatible with games that use e-mail as login
* add api keys for lands
* add GetGameCurrency endpoint
* allow create empty stores and add store "8" (empty)
---------
Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
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
);
```