27 Commits

Author SHA1 Message Date
54307d7582 initial data model work 2025-02-26 13:04:50 -08: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
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
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
Spirtix
768affd3b2 mmo roles 2024-04-07 15:40:37 +02: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
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
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
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
c842a2f3b2 implement Petz system 2024-03-03 14:00:10 +00:00
ff19b747d8 backport Set/GetProduct from WoJSReStartedApi
Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
2024-03-03 14:00:10 +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
Spirtix
a0e2e198da score leaderboards 2023-11-26 17:44:38 +01:00
Spirtix
fd831058c6 data model improvements 2023-10-17 07:58:04 +02:00
rpaciorek
81e5718e05
foreign keys for table PairData + DragonId column + DB schema improvements (#30)
* DB schema improvements

- add column DragonId to table PairData
- add foreign keys for table PairData
- remove unused column InventoryId from Vikings table
- simplifying relations viking -> selected dragon
  - remove SelectedViking and SelectedVikingId from Dragon
  - remove column SelectedVikingId from Dragons table
- cleanup and arrangement code in DBContext.cs

* support for dragons PairData in KeyValueService

and in "pairs" API endpoints
2023-08-31 20:46:03 +02:00
rpaciorek
406ebe20c2
initial support for XP points (#16)
* GetPetAchievementsByUserID and enum for PointTypes

* add RankService

* use AchievementPointTypes for PointTypeID

... insted of int in schema

* support for player XP, fix dragon XP

- database table
- return correct value in API call
- save XP from mission

* rename RankService to AchievementService

* use addAchievementPoints for all non item reward

this could be a good place for wallet servicing too ... so currency reward too

* return const XP value for farming and fishing

we don't have gathering method for those XPs yet

* fix avatar schema, fix coding style
2023-08-14 18:34:14 +02:00
Spirtix
1c01eb25f5 hideouts 2023-07-12 22:07:24 +02:00
Spirtix
9cef74dd26 add support for missions
still requires achievements to work corrently
2023-07-07 01:25:25 +02:00
Spirtix
94da3ff337 support for items and inventories 2023-06-22 13:59:14 +02:00
hictooth
1fdff9d27b fix dragons and images 2023-06-22 10:39:06 +01:00
hictooth
5f7921ea6f implement dragons
pets, which are dragons in SoD
2023-06-21 21:01:54 +01:00
hictooth
199d44f1cd create profile
works up to start of tutorial
2023-06-19 20:23:53 +01:00
hictooth
d4517b459b child registration and login 2023-06-17 22:17:36 +01:00