Restructure

Restructured the module based on my progression module in anticipation of it being made public.
This commit is contained in:
Revision 2023-01-15 19:59:15 +01:00
parent 206b5a3a3a
commit 8d6848ba24
6 changed files with 151 additions and 162 deletions

View file

@ -0,0 +1,62 @@
#include "Guild.h"
#include "Player.h"
#include "mod_guildfunds.h"
void GuildFunds::OnLootMoney(Player* player, uint32 gold)
{
if (Group* group = player->GetGroup())
{
uint32 membersInRange = 0;
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != nullptr; groupRef = groupRef->next())
{
if (Player* member = groupRef->GetSource())
{
if (member->IsAtLootRewardDistance(player))
membersInRange++;
}
}
if (LootMultiplier < 1)
return;
uint32 money = (gold / membersInRange) * LootMultiplier / 100;
if (money < 1)
return;
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != nullptr; groupRef = groupRef->next())
{
if (Player* member = groupRef->GetSource())
{
if (member->IsAtLootRewardDistance(player))
{
if (Guild* guild = member->GetGuild())
{
guild->HandleMemberDepositMoney(member->GetSession(), money);
member->ModifyMoney(money);
if (ShowInfo)
SendFundsInformation(member, money);
}
}
}
}
}
else
{
if (Guild* guild = player->GetGuild())
{
uint32 money = gold * LootMultiplier / 100;
if (money < 1 || LootMultiplier < 1)
return;
guild->HandleMemberDepositMoney(player->GetSession(), money);
player->ModifyMoney(money);
if (ShowInfo)
SendFundsInformation(player, money);
}
}
}