Commit graph

136 commits

Author SHA1 Message Date
Paul Campbell
c594b0dc0c feat: Add pawn favorites
Added the ability to save pawn favorites.
2025-05-31 16:31:48 -04:00
Paul Campbell
a3316815af feat: Job Emblems
- Added support for job emblems
- Created new personal quests to unlock emblems.
- Added support for emblems using the menus at Renton.
- Created new handlers and packets for the new menus.
2025-05-23 23:00:13 -04:00
Paul Campbell
f5905e8e7d feat: Add support for "Skill Augmentation"
- Add new scripting module for "Skill Augmentation"
- Locked EM4 skills behind completion of EM4
- Implemented tree layouts for all jobs
- Implemented new REQ, RES and handlers for Skill Augmentation
- Implemented the quest Skill Augmentation Guidance of a Renewed White Dragon
- Implemented augmentation trials for all jobs
- Updated adventure guide logic to handle when to present quests better.
- Adjusted how personal quests for vocation are distributed to remove
  the need to change areas or log out to get them to show.

Thanks for help from multiple players to help us collect the skill tree
data.

Co-authored-by: 𝔢𝔪𝔪𝔞 𝔢𝔳𝔢𝔯𝔤𝔞𝔯𝔡
Co-authored-by: Cold Blood
Co-authored-by: Genzyuro
Co-authored-by: あゆふぁ
Co-authored-by: 鬼頭オパーリン
Co-authored-by: GaethanT
Co-authored-by: Sapphiratelaemara
Co-authored-by: King Flipsta
2025-05-10 15:19:53 -04:00
Sehkah
5a61567a5b Add new primary key & efficient upsert to ddon_job_master_active_orders_progress; migrates DB from v39->v40. 2025-04-27 22:39:40 +02:00
Sehkah
a0eef2ec3c Add new UUIDv7 based item UID approach; migrates DB to v39. 2025-04-27 17:33:55 +02:00
Paul Campbell
af5490f51a fixes: Add fixes found while testing
- Added a primary key to ddon_completed_quests
- Fix pawn rewards crash
2025-04-25 20:17:41 -04:00
Sehkah
48d97e8af8 Reintroduce "IF NOT EXISTS" in base schema now that MariaDB is no longer a concern. 2025-04-20 22:38:19 +02:00
Sehkah
6520d83f1a Add convenience script to convert SQLite schema without having to start up the application.
Avoid "if not exists" in base schema as this is only expected to run once anyway, otherwise mariadb is not happy about conditional indexes.
2025-04-20 22:10:55 +02:00
Sehkah
080a868259 Refactor persistence layer, add new 37>38 migration. 2025-04-19 15:23:30 +02:00
Sehkah
aeaa2c8ace Make pg_loader consume less RAM by batching. 2025-04-18 16:59:06 +02:00
Sehkah
3fcfb9bfa8 Add indexes for slow queries to speed up some queries. 2025-04-18 13:22:19 +02:00
Sehkah
a9a25f7887 Change ddon_edit_info from SMALLINT to INTEGER. 2025-04-18 13:22:19 +02:00
Paul Campbell
2195a68b9d feat: Job Masters and Job Training
- Added support for Job Masters.
- All custom skills above level 4 are rolled back to level 4
- All augments above level 3 are rolled back to level 3
- Skills which are rolled back have their job points refunded to the
  player.
- All skills and augments are unequipped from all players.

Miscellaneous Changes:
- Implemented the personal quest "The High Scepter's Heir" which is used
  to unlock High Scepter and High Scepter job training.
- Adjusted automatic EXP and BO calculations.
2025-04-16 09:33:33 -04:00
Sehkah
50c245943d Update to net9.0/C#13, expand range of item UIDs, fix docker builds, fix mariadb. 2025-04-12 17:01:55 +02:00
Ryan Yappert
ae5efc1ec5 MyRoom customization persistence. 2025-04-09 18:21:22 -07:00
Ryan Yappert
c79a245310 Unlocking items framework for card backgrounds, recipes, furniture; recieving rewards. Bump maximum pawn affection to 26 to support new achievement. 2025-04-09 18:21:19 -07:00
Ryan Yappert
1ca3b34114 Achievements 2025-04-09 18:21:15 -07:00
Paul Campbell
75ff836696 feat: Limit Break
Added the ability to use the limit break option at Craig under the
"Custom-Made Arms" category.
2025-03-27 00:18:46 -04:00
Paul Campbell
8c03891849 feat: Add support for "Arms Resource Disassembly"
Added support to breakdown equipment into BO, R, G and some random items
based on some parameters. Exposed the item selection algorithm as a new
script equipment_recycle.csx. Added a new settings script under the
uncategorized section called equipment_recycle.csx. This contains
settings related to disassembly of equipment.

Addiitonal Changes:
- Fixed an issue with the task scheduler where timers were not stored in
  the task manager, which leads to them eventually getting garbage
  collected.
- Updated the schedule script to print what type of task it is reporting
  for.
- Added behavior for Custom-Made Service Ticket and Silver Ticket when
  the player receives them as an item from a quest to put them in the
  wallet.
2025-03-24 22:39:20 -04:00
Mike Salerno
166cce174d fixes diplicate private key name
fixes postgres issue casued by duplicate private key name
2025-03-15 17:52:11 -04:00
Paul Campbell
dcd24e1a85 code review feedback
Made changes based on feedback in the code review.
2025-03-12 20:27:41 -04:00
Paul Campbell
6d13b7a920 feat: Added support for Partner Pawns
- Player can now assign a partner pawn at the riftstone and the server
  will remember which pawn it is.
- All rewards besides achivements and recipies are obtainable.
- Player gets credit once per day for:
    - Delivering 2 Riftstone Shards to the pawn
    - Performing 1 craft with the pawn as the craft master
    - Adventuring with the pawn for 30 minutes.
- Reset occurs every day at 5:00am local server time.
- A new setting "PartnerPawnAdventureDurationInSeconds" has been added
  to configure the time in seconds it takes before the server considers
  enough time has passed to give the player credit.
- Added a new function PauseTimer to the timer manager.
- Added a new PartnerPawnManager class.
2025-03-12 19:41:31 -04:00
Ryan Yappert
604470fc35 Ranking Boards. 2025-02-21 21:55:15 -08:00
Ryan Yappert
b262c2fea3 Area Rank stuff in the DB. Migrates DB version 27 -> 28. 2025-02-21 21:37:43 -08:00
Mike Salerno
5acc1b621e fix data type of boolean column so postgres works 2024-12-22 19:50:46 -05:00
Mike Salerno
cc52087788 make clan_id an autoincrement column 2024-12-22 19:50:46 -05:00
Paul Campbell
7fe9fc94c0 feat: Implement a task scheduler
Implemented a light weight mechanism for scheduling recurring tasks.
This can be used to implement, hourly, daily or weekly resets. There is
also an intention to use the mechanism to check for seasonal events and
turn on/off depending on the date.
2024-12-15 08:29:07 -05:00
Paul Campbell
33c467b269 fix: Correct small issues in multiple world quest files
- Fixed issues related to enemy spawn and NPC text in 50 quest files.
- Fixed an issue in the SQL schema when creating a new database.

Authored-by: Cert
2024-12-12 09:50:13 -05:00
alborrajo
0a11d4c3a6 Save pawn state in the database 2024-12-10 17:47:06 +01:00
Paul Campbell
ec686b8cf2 implement new packets, handlers and database queries
- Implemented many req, res, ntc and handlers for Epitaph content.
- Renamed existing BonusDungeonManager to DungeonManager.
- Implemented database migration from 24 -> 25.
- Implemented a new packet handler which provides a queue which can be
  used to send packets after the response is returned.
- Commented out RPC ping print message.
- Added new NPC behavior to NpcGetExtendedFacilityHandler.
2024-11-24 19:01:03 -05:00
Ryan Yappert
4003b7c1e7 Even more clan stuff; DB migration 23 -> 24 2024-11-22 02:14:50 -08:00
Ryan Yappert
520d94c2a2 Add DB Migration 21 -> 22 2024-10-28 14:18:58 -07:00
Paul Campbell
6d22055f56 DB Migration
Migrate database from 20 to 21.
2024-10-08 21:25:12 -04:00
Ryan Yappert
4f9f18fc8f Cleanup; migration; PeriodicSync object for Clan data. 2024-10-03 23:38:48 -07:00
Ryan Yappert
f60cbeadf7 Creating clans and persistence across logins. 2024-10-03 23:38:48 -07:00
Ryan Yappert
f4f832bf16 Various clan packets. 2024-10-03 23:38:48 -07:00
Asterit
aae8e8b02e Added support for variant quests to drop their independent rewards as defined in their JSON. Renamed variant id to be more explicit within the schema. 2024-08-30 18:20:15 +01:00
Asterit
763c9bfb0f Added a way for variant quests to be added to the project. This version stored a variant id within quest progress if a quest has started. This is used to find the specific quest version the client needs to show the correct enemies. Rewards may still not work as expected. Needs further looking at. 2024-08-29 18:27:23 +01:00
Paul Campbell
68c7b1a730 feat: Add support to hire pawns
Added the ability to hire other player pawns through the rift crystal.
2024-08-26 15:21:32 -04:00
Sehkah
11dde93b0d Add TODOs for orb unlock & expand other DB syntax replacement cases. 2024-08-23 23:47:29 +02:00
Sehkah
e6409908de Merge branch 'develop' of https://github.com/Sehkah/Arrowgene.DragonsDogmaOnline into feature/further-investigate-crafting-packets 2024-08-23 23:14:06 +02:00
Paul Campbell
2fdc6a7988 Code Review Feedback
- Added comments documenting some special numbers.
- Fixed an issue with GetContentStatusFromOmReq.
- Updated migration logic to use sql commands directly.
- Fixed an issue a crash occured after resetting progress and changing
  jobs.
- S2CBattleContentAreaChange.cs => S2CBattleContentAreaChangeNtc.cs.
- Moved loot generation into instanced manager for BBM.
- Moved SwapCharacterInventories to CharacterSwitchGameModeHandler.
- Added a DB query to get all storages by character id.
- Fixed issue with new character creation.
- Fixed an issue where main quests didn't start.
- Delete BBM character when main character is deleted
2024-08-23 15:14:39 -04:00
Paul Campbell
0f5fbf3bbb Database Migration
Added a new migration strategy to migrate the database from version 11
to 12.
2024-08-23 15:14:39 -04:00
Paul Campbell
250d47ac61 feat: Add support for Bitterblack Maze
Added support for the player to participate in Bitterblack Maze. This
content allows the player to collect bracelets and earrings which gain
randomized stats based on the job they are collected on. The player uses
currency earned during the event to transfer items from the bitterblack
maze content to the normal game content.

Co-authored-by: Cert
Co-authored-by: @Conner-Schaffer
Co-authored-by: Dark Warrior
Co-authored-by: @Sehkah
Co-authored-by: Sera Eidolon

What works:
- Add support for creating a new character for BBM
- Add class randomized loot
- Bitterblack Maze special jewelry rewards
- Add BBM Spawns
- Add support for different Lyka menu options
  - Report Search Results
  - Reset Progress
  - Bitterblack Shop
  - Rare Item Appraisal
  - Bitterblack Item Takeaway
- Equip items directly from treasure chest
- Homepoint to Bitterblack Maze Cove when dead in the maze
- Update Schema for new tables and provide migration strategy

What doesn't work:
- Using Pawns
- Bitterblack Equipment Effect Seal
- Player ready up menu
- Item sort messes up sort between different modes
- Clear timestamp is incorrect
- Tracking treasure claimed
- Inventory is not deleted when home pointing after death
- Some enemies get stuck on terrain (probably wrong mob for area)
- Original quest to start BBM not implemented
- Reset progress doesn't consume reset tickets
- Reset tickets not awarded
- Players not in party sometimes can't be seen

DB Migration:
To update an existing database run 'dotnet run dbmigration' to upgrade from version '11' to version '12'.
2024-08-23 15:14:34 -04:00
Sehkah
94e8752dfb Support deleting pawns; also improve base schema consistency and add some missing delete cascades. 2024-08-23 16:51:59 +02:00
Sehkah
516091d245 Fix various crafting exp, rank & promotion-related bugs. 2024-08-18 11:09:47 +02:00
Ryan Yappert
07a576814f Provide all characters a blank blob in migration. Target DB v10 -> v11. 2024-08-15 21:22:46 -07:00
Ryan Yappert
00be912b8c DB stuff for binary data. 2024-08-15 21:22:46 -07:00
Sehkah
853efba76c Add craft progress table to base schema & fix some syntax errors. 2024-08-11 20:42:14 +02:00
Ryan Yappert
7cb688f9b7 Preset database stuff. 2024-08-10 15:24:06 -07:00