* 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
);
```
Implements the rating system.
Shipwreck Lagoon tracks theoretically work, but there's currently no way of testing them.
There is a hack to make the ranked pods section of the blaster party board work. Don't know if that'll cause any issues (but I don't think so).
SQLite database schema changes:
```sql
CREATE TABLE "RatingRanks" (
"Id" INTEGER NOT NULL,
"CategoryID" INTEGER NOT NULL,
"RatedEntityID" INTEGER,
"RatedUserID" TEXT,
"Rank" INTEGER NOT NULL,
"RatingAverage" REAL NOT NULL,
"UpdateDate" TEXT NOT NULL,
CONSTRAINT "PK_RatingRanks" PRIMARY KEY("Id" AUTOINCREMENT)
);
CREATE TABLE "Ratings" (
"Id" INTEGER NOT NULL,
"VikingId" INTEGER NOT NULL,
"RankId" INTEGER NOT NULL,
"Value" INTEGER NOT NULL,
"Date" TEXT NOT NULL,
CONSTRAINT "FK_Ratings_RatingRanks_RankId" FOREIGN KEY("RankId") REFERENCES "RatingRanks"("Id") ON DELETE CASCADE,
CONSTRAINT "PK_Ratings" PRIMARY KEY("Id" AUTOINCREMENT),
CONSTRAINT "FK_Ratings_Vikings_VikingId" FOREIGN KEY("VikingId") REFERENCES "Vikings"("Id") ON DELETE CASCADE
);
```
---------
Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
DB MODEL CHANGES! I don't know how to deal with those.
Support for EMD's MMO rooms and API token.
Groundwork for group/clan system (hence schema changes). Only functional for EMD right now (if I implemented it correctly).
* Removed debug logged messages.
* Update comments in GroupController.cs
* Fixed position of parenthesis in ConfigurationController.cs
* Noted changes in README
* Amendment to previous commit, these are supposed to be alphabetical.
* Changed unnecessary extra check for EMD ClientVersion.
Adds a setup script that removes the terrible terror perched on the stall at the School for Mission 2989 (Age of the Night Lights) and Mission 3043 task 6547 (Friendship Festival 2022).
For Friendship Festival 2022, the removal of the terrible terror is intended by the developers themselves, as evidenced by an ObMissionActivate monobehavior located in pathID 14489 in HubSchoolDO. I've tried the quest, and yet the terrible terror is still there, phasing through Harold's Terrible Terror during a cutscene. This pull request fixes that.
For Interception, a quest in Age of the Night Lights, users are getting confused when asked to click on Leopold. They think they need to click on the Terrible Terror perched on the stall, when instead they need to click on Leopold, Harald's Terrible Terror, that is flying in the air. This pull request removes the terror to help alleviate the confusion.
This is for minisaurs in WoJ, but I think it would be a good idea in general, so I didn't limit it to WoJ.
The issue happens because if you buy medicine for minisaurs. It takes away one coin, and so if you already have 0 coins, the server currently returns your coin count as int.MaxValue.
This is tested in WoJ 1.1.0 and 1.21.0. I tested buying, overflowing, underflowing, using commands with big and negative values and playing games.
* Change automatic RaisedPet name to not happen for WoJS
This is because Voltage Dragons get a name later, so this placeholder name currently gets assigned first.
I've never done this before, so let me know if I did it wrong lol
* Added Max_OldJS to the previous PR
* Added HaiFire's suggestion
* Added [FromForm] string apiKey
Ty HaiFire again!
* Add Announcement To Send Player To SanctuaryBabySS In SuperSecret
* Add Announcement for Amphitheater in WoJS
* Announcements are send based on per game resources file
Co-authored-by: Robert Paciorek <robert@opcode.eu.org>