94 Commits

Author SHA1 Message Date
c8c70b220e revert nullable `ToVikingId` 2025-03-06 11:49:59 -08:00
b7b99cd353 add `IsPrivate field to Message` 2025-03-06 11:33:08 -08:00
3ba60972ad fix best buddy set 2025-03-06 10:59:13 -08:00
6deebb947b implement `UpdateBestBuddy` 2025-03-06 10:52:16 -08:00
5bd62186f0 implement `RemoveBuddy`
modify ``SendMessage``
add message of typeid 21 when reply is made
reworks some things in ``BuddyService``
2025-03-03 17:00:58 -08:00
684e8691d8 implement `AddBuddy and ApproveBuddy` 2025-03-03 13:39:56 -08:00
6ede8af204 implement `BuddyService`
add ``CreatedAt`` to ``Buddy`` model
add missing schemas
2025-03-03 13:29:34 -08:00
4922223bb2 fix issues with replies 2025-03-02 19:56:11 -08:00
157f8fc455 implement endpoints in `MessagingController` 2025-03-02 18:52:22 -08:00
c53b6b9348 implement `MessagingService`
add additional messaging schemas
2025-03-02 18:20:35 -08:00
3f408bbae6 change response in `AddBanToViking` 2025-03-02 15:58:42 -08:00
df4c7e4017 introduce `Internal` namespace
implement ``ModerationController``
2025-02-27 14:50:46 -08:00
3800fc49c8 implement `ModerationService`
add type ``NotBanned`` to ``UserBanType`` enum
2025-02-26 14:00:27 -08: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
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
YesntSoup
2c4d99a84c
Change AddAchievementPoints to account for overflow and underflow (#8)
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.
2024-11-19 22:50:19 +01:00
Spirtix
e29f10c406
Purchase optimization (#3)
* purchase optimization

* purchase: simplify wallet update

* fix purchase: swap coins and gems

* purchase: rename mysteryBox to addAsMysteryBox

* purchase: adjust item quantity note

* purchase: change GetItemQuantity API
2024-07-25 22:54:48 +02:00
Hipposgrumm
a0f7b1ba3e Fixed Mutt Pods + Implemented GetTopAchievementPointBuddiesByType
* 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
2024-07-12 07:44:30 +00:00
meleestars
9993198a9b Implemented neighborhoods, fixed default houses
Also:
* implemented ``GetAvatarByUserID`` from @Moonbase's previous PR.
* implemented ``GetPeriodicGameDataByGame`` and ``GetGamePlayDataForDateRange``

---------

Co-authored-by: Alan Moon <alanmoonbase2004@gmail.com>
2024-07-10 08:27:23 +00:00
meleestars
2ec4358a39 Implemented `GetGameDataByUser` 2024-07-10 08:20:53 +00:00
Robert Paciorek
1dfcc655eb support for MMO in SuperSecret
thanks to HaiFire
2024-04-30 12:13:46 +00:00
Robert Paciorek
2d9b83db89 bugfixes
- fix "No soil plots in v.2.9"
  - do not send null `UserItemPosition.Uses` for old clients
- fix "unable to do the expansion missions in Sodoff 2.9"
  - move expansion board missions to Headmaster for old versions
- fix race condition on PurchaseItems (causing negative gems amount issue)
- move gems bundles to correct store
  - also fix "gems bundles not show after click on gems counter" issue
- fix "internal error neighborhood" (WoJS)
  (caused by room item with null item)
- fix "Release date is set to creation date upon being released" (WoJS)
  - update GrowTime value in SetRaisedPetInactive
2024-04-09 00:21:06 +00:00
Robert Paciorek
c4461263fa fixes for mmo support in old versions/other games 2024-04-02 12:44:11 +00:00
Robert Paciorek
446c40ccea merge House into SavedData, WoJS 1.1 vs 1.21 store
- 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
2024-03-17 20:46:40 +00:00
Robert Paciorek
9d89a6b6da rework GetMMOServerInfoWithZone
add MMOSupportMinVersion configure setting
2024-03-16 22:13:54 +00:00
1600938902 WoJS: Use DisplayName in GamesData
- Use DisplayName instead of Viking Name

Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
2024-03-14 20:33:08 +00:00
Robert Paciorek
88aa184881 bugfix: internal error when not use middle name 2024-03-03 14:00:35 +00:00
Robert Paciorek
6960aadcc3 fix set Jumpee name (and init move tutorial) 2024-03-03 14:00:10 +00:00
Robert Paciorek
f8c8b75645 quests data - quests files for WoJS 2024-03-03 14:00:10 +00:00
Robert Paciorek
566b75eefe some optimizations for Profile Answers 2024-03-02 20:19:42 +00:00
cc802043ec Profile Answers
-Add Ability For Profile Answers To Save
-Add WoJS response for ``GetQuestions``
-Add ``Pain`` Mood To Question Data
2024-03-02 17:36:29 +00:00
Robert Paciorek
97503cc389 rework game version managment
now we use game and SoD version encoded in uint (instead of compare raw apiKey values),
this allows for easy support for more versions ...
2024-02-24 18:47:04 +00:00
Robert Paciorek
7888445eee support for mods - items add/overwrite interface 2024-01-29 14:28:51 +00:00
Robert Paciorek
5c802927a0 job board and quests bugfixes
* fix: jobs disappear after completing
* fix: jobs (and quest) does not cost items
2024-01-04 00:19:16 +00:00
Robert Paciorek
e50207ac2e add support for customizable items 2023-12-29 22:49:11 +00:00
Robert Paciorek
512348336c fix missing blueprints 2023-12-29 00:36:29 +00:00
Robert Paciorek
25ebba6f65 fix MissionID restore bug 2023-12-11 16:27:46 +00:00
Robert Paciorek
e5570f7c91 Magic and Mythies fixes:
- add fake missions for unlock fishing and mythie grow up
- add games to store
2023-12-11 16:50:20 +01:00
Robert Paciorek
47e1bfb065 SoD 1.6 fixes
- CreateRaisedPet endpoint
- support for 1.6 apiKey + util class for management apiKey version recognition
2023-12-11 16:50:20 +01:00
Spirtix
80481713e3 include discounts in purchase prices 2023-12-09 22:01:10 +01:00
Spirtix
474605dd53 fix highscores involving time 2023-12-07 21:03:14 +01:00
Spirtix
8b3ed124c6 wallets 2023-12-07 20:38:06 +01:00
Spirtix
7578ee7e97 GetGameData: convert dates to UTC 2023-11-27 19:09:28 +01:00
Spirtix
57904b3b4a leaderboard query fixes 2023-11-26 19:47:54 +01:00
Spirtix
385449c1e7 highscore fixes 2023-11-26 17:44:38 +01:00
Spirtix
c5bc21e539 top achievement points leaderboard 2023-11-26 17:44:38 +01:00
Spirtix
a0e2e198da score leaderboards 2023-11-26 17:44:38 +01:00
Robert Paciorek
132057911f bugfix: check item gender for mystery box rewards 2023-11-07 11:39:07 +01:00
Spirtix
3ddc1e205c fix stable quest reward with invalid pet ID 2023-10-18 08:32:04 +02:00