161 Commits

Author SHA1 Message Date
Robert Paciorek
b005b27d0d GetBadge endpoint bugfix 2025-02-10 17:20:27 +00:00
Robert Paciorek
0e5437c5b7 some fixes to PR
* remove unnecessary deserialize - serialize
* use EmbeddedResource to read missions and badges files
* remove dead (and commented out) code
* define missing database model relation in DBContext.cs
* revert unrelated changes
2025-02-10 11:00:58 +00:00
YoshiCraft64
995bcd6307
Adventureland Part 1
Adds most of the stuff related to AL. Part 2 will have the mission data itself.
2025-02-09 21:28:44 -06: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
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
YesntSoup
ca951d78e8
Change automatic RaisedPet name to not happen for WoJS (#6)
* 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!
2024-09-03 22:48:06 +02:00
2f5a589bd4 Support for WoJS and SS in GetAnnouncementsByUser
* 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>
2024-08-19 21:45:43 +00:00
Hipposgrumm
6a9f2722e1 Added saving support for Ice Cubed. (#15)
Saving support now exists for Ice Cubed and any other games using the system.
2024-08-12 09:06:13 +00:00
YoshiCraft64
757392d4d5 GetPayout update (#14)
Update RatingController.cs for an update to GetPayout
Updates GetPayout to have a different payout system for each minigame.
2024-08-12 09:06:13 +00:00
Hipposgrumm
9ca4dfc7ae Added rank names and colors for MB. (#13) 2024-08-12 09:06:13 +00:00
Hipposgrumm
4e02ee19b4 Fix Mutt Textures not immediately Updating (#12)
* Math Blaster Mutts will now correctly have their textures changed immediately out of the incubator.
2024-08-12 09:06:13 +00: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
28e275bcaa Math Blaster Pod Parties and Birthday Pod Parties (#10)
* Added support for Math Blaster Pod and Birthday parties.

* Now sends only the appropriate parties for each game.
Math Blaster only gets parties in MyPodInt.
JumpStart only gets parties in MyNeighborhood or MyVIPRoomInt.
Parties in any other rooms don't get sent.
Any other games don't get sent parties (I couldn't work out how to set up SuperSecret for testing).
2024-07-16 08:48:52 +00:00
Hipposgrumm
10d0fed889 Added Support for Math Blaster Movies (#9)
Added a result for type `MathBlasterMovie`.
2024-07-16 08:48:52 +00:00
Robert Paciorek
69910dad12 fix internal error in GetAvatarByUserId 2024-07-16 08:02:44 +00: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
Robert Paciorek
a45323b447 bugfix for "Fixed Math Blaster's mutt textures." 2024-07-10 19:25:30 +00:00
Hipposgrumm
2203bae81f Fixed Math Blaster's mutt textures. (#6)
Will now set to appropriate mutt texture if pet is using a larva texture and is older than HATCHING.

The pet data saving code will now set to appropriate mutt texture if pet is using a larva texture and is older than HATCHING.
This fixes the issue that mutts were using their old larva's texture instead of the mutt's default texture.
Any existing mutts using the wrong texture will have it changed when the pet is saved (not when loaded). For users to see the fixed texture they would need to restart the game after the affected mutt(s)' data changed in any way (or otherwise saved to the server).
2024-07-10 08:27:43 +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
3e06d89cb2 GetAssetVersions placeholder + WoJS bugfixes 2024-04-30 12:13:46 +00:00
Robert Paciorek
1dfcc655eb support for MMO in SuperSecret
thanks to HaiFire
2024-04-30 12:13:46 +00:00
Robert Paciorek
d1258b6082 fixes for avoid network error in client
- return 200 OK for /ContentWebService.asmx
- return 404 (and log error) on connection error to asset provider server
2024-04-12 10:02:53 +00:00
Robert Paciorek
a9151c42c5 rework WoJS Party
- fix SQL issue on removing expired parties
- use item data for party creation
2024-04-09 11:30:01 +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
Spirtix
768affd3b2 mmo roles 2024-04-07 15:40:37 +02:00
Spirtix
2c30736193 mmo authentication support 2024-04-07 15:40:24 +02:00
e956985678 Add Placeholder For LogEvent
and Add ``ping`` Method For Status Page
2024-03-27 09:46:02 +00:00
Robert Paciorek
cba1464079 fix Paralyzing Dreadfall Axe Blueprint 2024-03-19 13:47:54 +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
838f15fed8 add BirthDate, CreationDate and Gender
-Set Gender For Player
-Put CreationDate and BirthDate into Viking model
-Birthday Events Now Work
2024-03-14 20:33:08 +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
9089ea786d ContentByType, ProfileTags, WoJS Ranks and Quests
- 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
2024-03-14 20:32:57 +00:00
d796f5c4ce Implement Get/SetScene and Houses
- Attempt Implementation Of ``GetScene`` and ``SetScene``
- Typo In Route
- Implement Houses
2024-03-14 18:29:16 +00:00
8d236ef8d3 Add Parties System (WoJS)
- Add Placeholder For GetActiveParties
- Add Proper Placeholder For GetActiveParties
- Attempt Party Implementation
- Return Null When Party Time Is Not One Hour
- Do Not Buy Party If It Already Exists
- Remove Coins From User After Buying Party
- Fix Parties Not Getting Removed After One Hour
- db model fixes
- Make Party ID key an integer
- Add ``GetPartiesByUserId``
- Fixes Parties Not Having Decorations
- Add All Other Party Durations And Types
- Fix Mistake In ``GetActiveParties``
2024-03-14 18:29:16 +00:00
93361c5e84 add endpoints for WoJS
add:
 - SetGameCurrency
 - GetDisplayNameByUserId
 - GetCommonInventoryByUserId
and some placeholders

- Reimplement Currency System (WoJS)
- Implement ``GetDisplayNameByUserId``
- Move ``GetCombinedListMessage`` To Messaging Controller
- Add More Placeholders For MMO
- ``SetScore`` Placeholder
- Add ``GetRevealIndex`` For Learning Games

Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
2024-03-14 18:29:03 +00:00
Robert Paciorek
d8b996c6d7 bugfixes
- fix race condition on SetProduct
- properly create ModdingService singleton on startup
- remove debug print
2024-03-04 01:50:38 +00:00
Robert Paciorek
08b5239880 bugfix: set gender in profile when no saved avatar 2024-03-03 19:38:49 +00:00
Robert Paciorek
a420c774d1 Merge branch 'WorldOfJumpStart'
add support for World of JumpStart, MathBlaster and some other JS online games
2024-03-03 19:36:48 +00:00
Robert Paciorek
d557871fd3 rework ProductData and Petz saves
- support for separate saves for lands via ClientVersion.GetVersion(apiKey)
- add Adventureland apiKey to ClientVersion
2024-03-03 14:56:09 +00:00
Robert Paciorek
2a20cbd758 add GetActiveRaisedPetsByTypes 2024-03-03 14:00:35 +00:00
Robert Paciorek
22b5a76147 minisaur should start as baby (not powerup) 2024-03-03 14:00:35 +00:00
Robert Paciorek
ca95caf783 support for Futureland (IsValidApiToken) 2024-03-03 14:00:35 +00:00
Robert Paciorek
f611b9203c SetAvatar (v1) should return bool 2024-03-03 14:00:35 +00:00
Robert Paciorek
baab40c828 Mythies issues fixes
- fix "Mythies" tab in profile
- fix Minisaurs vs Mythies conflict
2024-03-03 14:00:10 +00:00