305 Commits

Author SHA1 Message Date
Hipposgrumm
4889f11214
Merge 5e5a66bf92aee119cd809c5239cd54062b698380 into 83526569c1341353f2f63c2fa8d902dc0ddfd94f 2025-11-20 19:22:58 +01:00
Spirtix
83526569c1 reduce logging level 2025-11-20 10:59:15 +01:00
Hipposgrumm
5e5a66bf92 Rename GroupRoles to GroupMemberships and...
...made displayname check in GetMembersByGroupID.
2025-10-26 22:21:43 -06:00
Hipposgrumm
6963a22f6f Removed EMD code because Spirtix yelled at me. 2025-10-26 22:14:38 -06:00
Hipposgrumm
67a0b9f360 Added group name validation.
Also made name validation a switch statement (faster).
2025-10-19 11:36:08 -06:00
Hipposgrumm
67732b63e9 Un-nested some ifs and made the initializing of the RolePermissions data hopefully more readable. 2025-10-19 11:26:12 -06:00
Robert Paciorek
4e9ef56a8a create XmlDataService
repleaced DisplayNamesService and WorldIdService
2025-10-19 12:36:02 +00:00
Hipposgrumm
890b62c10a Made changes to the repository.
Pushing them to see if I did a good job.
2025-10-18 22:19:58 -06:00
Hipposgrumm
48ba9d373e
Merge branch 'master' into clash-of-clans 2025-10-18 21:34:51 -06:00
Hipposgrumm
3e232f9377 Roundabout way of solving a merge conflict 2025-10-18 21:30:24 -06:00
Hipposgrumm
e45f3769bc Un Merge Conflict 2025-10-18 21:28:21 -06:00
Spirtix
f8b26e468b fix dragons with predefined name getting a random name 2025-09-25 17:44:04 +02:00
Robert Paciorek
59c722fe65 importer bugfix - error on stable imports
stables do not use unique inventory slots
2025-08-12 20:36:44 +00:00
Robert Paciorek
ea75d182a6 user data export and import interfce (enhance)
* 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
2025-08-11 16:54:16 +02:00
Robert Paciorek
74b24d8ff5 user data export and import interfce (WIP) 2025-08-11 16:54:16 +02:00
Hipposgrumm
c14dc2258c Clan System, please contact me if you have any questions.
Please only contact me if you're Clan System /j
2025-07-29 20:44:59 -06:00
Robert Paciorek
fb6c935e7e fix upcoming missions in GetUserMissionState
* 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
2025-07-27 10:34:28 +00:00
Robert Paciorek
278f04d381 disable null-related warnings 2025-07-27 10:32:55 +00:00
Spirtix
1a6db72d7a downgrade ef to 7
There's a performance regression for synchronous insert/update in npgsql
ef adapter, we'll have to switch to asynchronous db calls before
updating
2025-07-02 21:28:53 +02:00
Spirtix
0923b80cdf lock CreatePet and SetImage 2025-07-01 16:40:56 +02:00
Spirtix
1b22c9c3dd remove async query 2025-06-30 22:21:10 +02:00
Spirtix
7dbcc456b9 async locking for VikingSession 2025-06-30 19:33:49 +02:00
Spirtix
bca383c4d0 remove PairData.Update
this is expensive and unnecessary because the entity is already tracked
2025-06-30 15:26:47 +02:00
Robert Paciorek
12bb663076 fix null exception in LoginParent 2025-06-27 22:37:58 +02:00
Robert Paciorek
a3db9c2bcf update dotnet version in Dockerfile 2025-06-27 22:37:58 +02:00
Spirtix
2aac24c37e fix indent 2025-06-27 22:37:58 +02:00
Spirtix
06daf21d8c update dependencies 2025-06-27 22:37:58 +02:00
Spirtix
dc303d871e mission deep copy
.net 8 deprecated BinaryFormatter serialization
apart from that proper deep copies are ~10x faster
2025-06-27 22:37:58 +02:00
Spirtix
3ffced2b60 password rehashing
asp net identity v3 uses a new hashing algorithm (hmac-sha256)
2025-06-27 22:37:58 +02:00
Spirtix
640d7ba664 switch to .net 9 2025-06-27 22:37:58 +02:00
ABrokenTV
3877a8ba37
Fix spawn for Skulder in "Boneknapper, Kidnapped? [2020]" (#23) 2025-06-23 10:51:11 +02:00
Robert Paciorek
00d4aa146a ClientVersion.GetGameID to get internal game id
(without version / sub-app info)
2025-06-22 14:58:03 +00:00
Robert Paciorek
bdf7707019 store and rewards update
* 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
2025-06-11 10:32:49 +00:00
Spirtix
8e141ab43d better upcoming mission filtering 2025-04-18 15:18:13 +02:00
Spirtix
d9d35c47a8 autofill common payload instead of saving to db 2025-04-14 12:06:37 +02:00
Spirtix
60cc00dc66 don't create upcoming missions upfront 2025-04-14 11:29:41 +02:00
Robert Paciorek
db795d93a4 bugfixes
- 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
2025-03-09 08:27:49 +00:00
Robert Paciorek
3222c63fa6 fix reward for "Photo Mode - Sunset (Back)"
set reward like for other photo missions (500 dragon XP, 100 viking XP)
to avoid wrong client side reward calculation while repeat this missions
2025-02-22 19:31:14 +00:00
Robert Paciorek
3229464c02 correct handling adding XP in child->titan levelup
(this can happen with a quick conversion child->adult->titan, wrong order of `SetRaisedPet` requests or missed request)
2025-02-19 18:37:08 +00:00
Robert Paciorek
4b2fefc492 multiple SoD small fixes
* 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)
2025-02-13 23:10:08 +00:00
YoshiCraft64
cecaa50610
support for old ("steps") missions (#20)
* 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>
2025-02-13 22:58:19 +01:00
Robert Paciorek
13df822608 rework achievements system + minor cleanup
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
);
```
2025-02-08 10:29:56 +00:00
Hipposgrumm
24695583b3
Rating for Pods, Games, and (probably) other stuff (#16)
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>
2025-02-08 10:19:43 +01:00
ABrokenTV
c1d6850867
Add "Land" Payouts to RatingController.cs (#17)
Added payouts for Adventureland, Marineland, and Futureland, from "Lost Island Training" standalone port.
2025-02-07 17:12:07 +01:00
YesntSoup
1f3b5386e6
Add separate Ridez and Petz stores for old WoJS
... and add all Ridez to that store (#18)
2025-02-07 17:10:40 +01:00
Robert Paciorek
0127aab379 more complete wojs missions data file
it include Valentine's missions

thanks to YesntSoup and spectershade
2024-12-30 11:28:44 +01:00
Robert Paciorek
65aa1fecb5 add MaM missions data, fix old clients mission api
- added MaM missions xml data (thanks to spectershade)
- send completed task to old client via GetUserMissionState API
2024-12-30 11:28:44 +01:00
HaiFire3344
d56c492eb1
Prevent logging into accounts from different games (#13)
[Originally authored by AlanMoonbase](1e9ca7e19c (diff-bb10d4643a2fa54d983a574662f579e09c056f29837397a10cd9300a98fbcc7cR171))
2024-12-29 17:15:42 +01:00
Hipposgrumm
4b6f782e21
Eat My Dust support (#12)
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.
2024-12-29 17:00:21 +01:00
HaiFire3344
dcefeb5fc3
Add unused levels to World of JumpStart zone list in MMO config (#10)
This also removes `CoconutMall`, which was not present in the original game at all.
2024-11-24 19:19:54 +01:00