2021-12-05 17:54:36 +00:00
|
|
|
#pragma once
|
|
|
|
|
2021-12-20 10:25:45 +00:00
|
|
|
#include "dCommonVars.h"
|
2024-03-04 01:06:19 +00:00
|
|
|
#include "eLootSourceType.h"
|
2021-12-20 10:25:45 +00:00
|
|
|
#include <unordered_map>
|
2021-12-05 17:54:36 +00:00
|
|
|
|
2021-12-20 10:25:45 +00:00
|
|
|
class Entity;
|
2021-12-05 17:54:36 +00:00
|
|
|
|
2021-12-20 10:25:45 +00:00
|
|
|
namespace Loot {
|
2022-07-28 13:39:57 +00:00
|
|
|
struct Info {
|
2023-10-09 20:33:22 +00:00
|
|
|
LWOOBJID id = 0;
|
|
|
|
LOT lot = 0;
|
|
|
|
uint32_t count = 0;
|
2022-07-28 13:39:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
std::unordered_map<LOT, int32_t> RollLootMatrix(Entity* player, uint32_t matrixIndex);
|
|
|
|
std::unordered_map<LOT, int32_t> RollLootMatrix(uint32_t matrixIndex);
|
2023-10-09 20:33:22 +00:00
|
|
|
void CacheMatrix(const uint32_t matrixIndex);
|
2023-05-02 22:39:21 +00:00
|
|
|
void GiveLoot(Entity* player, uint32_t matrixIndex, eLootSourceType lootSourceType = eLootSourceType::NONE);
|
|
|
|
void GiveLoot(Entity* player, std::unordered_map<LOT, int32_t>& result, eLootSourceType lootSourceType = eLootSourceType::NONE);
|
2022-07-28 13:39:57 +00:00
|
|
|
void GiveActivityLoot(Entity* player, Entity* source, uint32_t activityID, int32_t rating = 0);
|
|
|
|
void DropLoot(Entity* player, Entity* killedObject, uint32_t matrixIndex, uint32_t minCoins, uint32_t maxCoins);
|
|
|
|
void DropLoot(Entity* player, Entity* killedObject, std::unordered_map<LOT, int32_t>& result, uint32_t minCoins, uint32_t maxCoins);
|
|
|
|
void DropActivityLoot(Entity* player, Entity* source, uint32_t activityID, int32_t rating = 0);
|
2021-12-21 10:17:35 +00:00
|
|
|
};
|