2021-12-05 18:54:36 +01:00
|
|
|
#include "AgCagedBricksServer.h"
|
|
|
|
#include "InventoryComponent.h"
|
|
|
|
#include "GameMessages.h"
|
|
|
|
#include "Character.h"
|
|
|
|
#include "EntityManager.h"
|
2023-03-04 01:16:37 -06:00
|
|
|
#include "eReplicaComponentType.h"
|
2023-05-02 17:39:21 -05:00
|
|
|
#include "ePlayerFlag.h"
|
2021-12-05 18:54:36 +01:00
|
|
|
|
|
|
|
void AgCagedBricksServer::OnUse(Entity* self, Entity* user) {
|
|
|
|
//Tell the client to spawn the baby spiderling:
|
|
|
|
auto spooders = EntityManager::Instance()->GetEntitiesInGroup("cagedSpider");
|
|
|
|
for (auto spodder : spooders) {
|
|
|
|
GameMessages::SendFireEventClientSide(spodder->GetObjectID(), user->GetSystemAddress(), u"toggle", LWOOBJID_EMPTY, 0, 0, user->GetObjectID());
|
|
|
|
}
|
|
|
|
|
|
|
|
//Set the flag & mission status:
|
2022-07-04 23:00:10 -07:00
|
|
|
auto character = user->GetCharacter();
|
|
|
|
|
|
|
|
if (!character) return;
|
|
|
|
|
2023-05-02 17:39:21 -05:00
|
|
|
character->SetPlayerFlag(ePlayerFlag::CAGED_SPIDER, true);
|
2021-12-05 18:54:36 +01:00
|
|
|
|
|
|
|
//Remove the maelstrom cube:
|
2023-06-09 01:27:05 -07:00
|
|
|
auto* inv = user->GetComponent<InventoryComponent>();
|
2022-07-28 08:39:57 -05:00
|
|
|
|
2021-12-05 18:54:36 +01:00
|
|
|
if (inv) {
|
|
|
|
inv->RemoveItem(14553, 1);
|
|
|
|
}
|
|
|
|
}
|