52 Commits

Author SHA1 Message Date
7e406fd1b1 initial data model work 2025-03-02 16:21:10 -08:00
3800fc49c8 implement `ModerationService`
add type ``NotBanned`` to ``UserBanType`` enum
2025-02-26 14:00:27 -08:00
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
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
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
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
39ab2802a3 fixup! mmo roles 2024-04-07 15:40:43 +02: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
Robert Paciorek
9d89a6b6da rework GetMMOServerInfoWithZone
add MMOSupportMinVersion configure setting
2024-03-16 22:13:54 +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
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
6960aadcc3 fix set Jumpee name (and init move tutorial) 2024-03-03 14:00:10 +00:00
Robert Paciorek
f695f96517 support for Math Blaster 2024-03-03 14:00:10 +00:00
Robert Paciorek
c1e759e766 WoJS: mythie and sanctuaty 1.1 fixes 2024-03-03 14:00:10 +00:00
Robert Paciorek
7888445eee support for mods - items add/overwrite interface 2024-01-29 14:28:51 +00:00
Robert Paciorek
36d009dc3a implemented SetDisplayName 2024-01-09 20:43:38 +00:00
Spirtix
80481713e3 include discounts in purchase prices 2023-12-09 22:01:10 +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
Robert Paciorek
c7b3a74390 use ItemService for store and itemId in store.xml
- replace full items def in store.xml by item id
- load items def from items.xml (via ItemService) in StoreService constructor
2023-09-18 14:01:24 +02:00
Spirtix
95008797b1 initial mmo work 2023-09-13 15:01:29 +02:00
Robert Paciorek
31cf0915d3 add AchievementPointType = 11 (Trophies) 2023-09-13 14:57:45 +02:00
Robert Paciorek
c6ad11b5d7 support for random quantity box prize
- add ItemService.GetItemQuantity
- add ItemService.CheckAndOpenBox and new form of ItemService.OpenBox
- add runes to DT rewards
2023-09-13 14:57:45 +02:00
Robert Paciorek
883fbd2181 add missing RedeemRequest 2023-09-04 21:00:43 +02:00
Robert Paciorek
82d31853ea stable mission rewards
- implement SetAchievementByEntityIDs endpoint
- add stable achivments to achievementsids.xml (generated from TimedMissionDO.xml)
- remove AddAchievementPointsAndGetReward, AddAchievementPoints now return AchievementReward
- add ApplyPayout to proxy
2023-09-04 20:50:47 +02:00
Robert Paciorek
b5e76d1846 DT reward bugfix + GetUserCurrency function
- bugfix DT rewards:
  - fix selling from reward screen
  - fix showing in inventory without reload
- add InventoryService.SellInventoryItem
- add AchievementService.GetUserCurrency function
2023-09-02 12:38:18 +02:00
rpaciorek
7bee6c620a
dragons tactics (battle) backpack (#26)
* return battle item as battle items

placeholder - no saved stats, always use default stats

* Blacksmith API implementation

* ApplyRewards (DT rewards) and AddBattleItems

also temporary disable some AchievementsTask rewards from DT ... probably should not be repeatable ...

* support "box tickets" blueprints

- add OpenBox in ItemService (should be useful for other boxes also)
- move checking item category to ItemService (ItemHasCategory)

* InventoryService and full DragonTactics rewards

- move "add to inventory" to InventoryService
- move creating CommonInventoryData from inventory to InventoryService
- move CreateItemStats() to ItemService
- assigning random "item" reward from DT based on dtrewards.xml (at this moment list of all DT items not listed in store)
- rework dragon XP and add player XP and gems reward to DT
2023-08-31 20:42:03 +02:00
rpaciorek
665089d5ef
support AchievementTask and AchievementID rewards (#25)
- add task and id reward xml databases
   - thanks to Project Edge community for sniffed network data!
- implement SetAchievementAndGetReward, SetUserAchievementAndGetReward
- partially implement SetUserAchievementTask
- move rewards logic to AchievementService
- show real value of farming and fishing XP
- show UDP points

Co-authored-by: Spirtix <michal.prazak1@gmail.com>
2023-08-23 22:07:08 +02:00
Robert Paciorek
d7e62ffbc3 add missing DeleteProfileStatus 2023-08-19 21:19:29 +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
Robert Paciorek
794b8487f1 fix flight club
- add placeholder for GetGameData
2023-08-14 14:22:14 +02:00
Spirtix
724a052e17 fix server error caused by blueprints 2023-08-05 20:19:17 +02:00
rpaciorek
4c2dd92969
initial support for older clients, tested with 2.9 (#11)
- add GetChildList method
- add placeholder fields to respond in GetUserInfoByApiToken and GetUserProfile
2023-07-25 23:25:37 +02:00
Spirtix
f71fbe3559 initial farm implementation 2023-07-20 22:11:42 +02:00
Spirtix
1c01eb25f5 hideouts 2023-07-12 22:07:24 +02:00
Spirtix
e48858fd01 implement GetAnnouncementsByUser 2023-07-09 11:21:19 +02:00
Spirtix
f821a0b1cb stub achievements to progress in missions 2023-07-07 22:23:48 +02:00
Spirtix
9cef74dd26 add support for missions
still requires achievements to work corrently
2023-07-07 01:25:25 +02:00
Spirtix
0460746824 implement store, purchases; fix inventory
This only implements V2 purchases
V1 purchases are used outside of the store
2023-07-03 19:38:52 +02:00
Spirtix
5b2ec98701 stub various endpoints 2023-06-27 22:15:06 +02:00
Spirtix
b7e2b2f822 properly track mission states and rewards 2023-06-22 22:08:54 +02:00
Spirtix
94da3ff337 support for items and inventories 2023-06-22 13:59:14 +02:00
hictooth
5f7921ea6f implement dragons
pets, which are dragons in SoD
2023-06-21 21:01:54 +01:00
Spirtix
2c195832f5 mockup for the tutorial mission 2023-06-21 16:13:21 +02:00
hictooth
199d44f1cd create profile
works up to start of tutorial
2023-06-19 20:23:53 +01:00
Spirtix
2a4edfffef Get/Set pairs 2023-06-19 19:59:42 +02:00