mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 22:01:30 +00:00
* basic evolving items framework created * Implement evolving tab in the inventory window * Implement experience and number of kills * Move zone evolving map to a evolvingitemsmanager class * rework gm commands * rework GetInventory * wip * wip loot testing * Fix Duplicate Message * reworked evolving item looting, swapping, etc * reworked const functions for evolving methods * Functioning Player Trade of evolving items test item_id is 89550 * First pass of Final Result link working * First pass of item upgrading when reaching 100% * Add strings and logic for displaying the evolving item xp transfer window in Corathus * Prototype of xp transfer window sending items * WIP for evolve xp transfer * WIP for evolve xp transfer. First tests passed * XP Transfer Cleanup * XP Transfer Cleanup * Add Rule for evolving items equip timer/ default is 30 secs * Add logging and player events Add logging and player events * Formatting * Database updates * Updates for linux build * Perl/Cleanup * Command cleanup * Lua * Added a crash condition check if final item id is blank or not found. * Review Changes Updates to resolve review comments and a rebase. * migrate to content_db for items_evolving_details migrate to content_db for items_evolving_details * Simplify, don't hit database unless evolving * Update 2025_01_19_items_evolving_details.sql * Update client.cpp * Update manifest with items_evolving_details * character_id vs char_id * Remove _Struct from structs * Remove license header in evolving.cpp * Move evolving constants from eq_constants.h to evolving.h since it is more specific * Update database_schema.h * General cleanup * Be more specific with `evolving_items` vs `evolving` --------- Co-authored-by: Kinglykrab <kinglykrab@gmail.com> Co-authored-by: Akkadius <akkadius1@gmail.com>
67 lines
1.5 KiB
C++
67 lines
1.5 KiB
C++
#ifndef EQEMU_CHARACTER_EVOLVING_ITEMS_REPOSITORY_H
|
|
#define EQEMU_CHARACTER_EVOLVING_ITEMS_REPOSITORY_H
|
|
|
|
#include "../database.h"
|
|
#include "../strings.h"
|
|
#include "base/base_character_evolving_items_repository.h"
|
|
|
|
#include <boost/tuple/tuple_comparison.hpp>
|
|
|
|
class CharacterEvolvingItemsRepository: public BaseCharacterEvolvingItemsRepository {
|
|
public:
|
|
// Custom extended repository methods here
|
|
|
|
static CharacterEvolvingItems SetCurrentAmountAndProgression(Database& db, const uint64 id, const uint64 amount, const double progression)
|
|
{
|
|
auto e = FindOne(db, id);
|
|
if (e.id == 0) {
|
|
return NewEntity();
|
|
}
|
|
|
|
e.current_amount = amount;
|
|
e.progression = progression;
|
|
e.deleted_at = 0;
|
|
UpdateOne(db, e);
|
|
return e;
|
|
}
|
|
|
|
static CharacterEvolvingItems SetEquipped(Database& db, const uint64 id, const bool equipped)
|
|
{
|
|
auto e = FindOne(db, id);
|
|
if (e.id == 0) {
|
|
return NewEntity();
|
|
}
|
|
|
|
e.equipped = equipped;
|
|
e.deleted_at = 0;
|
|
UpdateOne(db, e);
|
|
return e;
|
|
}
|
|
|
|
static CharacterEvolvingItems SoftDelete(Database& db, const uint64 id)
|
|
{
|
|
auto e = FindOne(db, id);
|
|
if (e.id == 0) {
|
|
return NewEntity();
|
|
}
|
|
|
|
e.deleted_at = time(nullptr);
|
|
UpdateOne(db, e);
|
|
return e;
|
|
}
|
|
|
|
static bool UpdateCharID(Database &db, const uint64 id, const uint32 to_char_id)
|
|
{
|
|
auto e = FindOne(db, id);
|
|
if (e.id == 0) {
|
|
return false;
|
|
}
|
|
|
|
e.character_id = to_char_id;
|
|
e.deleted_at = 0;
|
|
return UpdateOne(db, e);
|
|
}
|
|
};
|
|
|
|
#endif //EQEMU_CHARACTER_EVOLVING_ITEMS_REPOSITORY_H
|