mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-06-24 05:39:53 +00:00
fix: imaginite not being taken when starting shooting gallery (#1823)
This commit is contained in:
parent
3c244cce27
commit
48e3471831
@ -673,8 +673,9 @@ void Entity::Initialize() {
|
||||
}
|
||||
|
||||
// Shooting gallery component
|
||||
if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::SHOOTING_GALLERY) > 0) {
|
||||
AddComponent<ShootingGalleryComponent>();
|
||||
const auto shootingGalleryComponentID = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::SHOOTING_GALLERY);
|
||||
if (shootingGalleryComponentID > 0) {
|
||||
AddComponent<ShootingGalleryComponent>(shootingGalleryComponentID);
|
||||
}
|
||||
|
||||
if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::PROPERTY, -1) != -1) {
|
||||
|
@ -2,11 +2,9 @@
|
||||
#include "EntityManager.h"
|
||||
#include "ScriptedActivityComponent.h"
|
||||
|
||||
ShootingGalleryComponent::ShootingGalleryComponent(Entity* parent) : Component(parent) {
|
||||
ShootingGalleryComponent::ShootingGalleryComponent(Entity* parent, int32_t activityID) : ActivityComponent(parent, activityID) {
|
||||
}
|
||||
|
||||
ShootingGalleryComponent::~ShootingGalleryComponent() = default;
|
||||
|
||||
void ShootingGalleryComponent::SetStaticParams(const StaticShootingGalleryParams& params) {
|
||||
m_StaticParams = params;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "Entity.h"
|
||||
#include "Component.h"
|
||||
#include "eReplicaComponentType.h"
|
||||
#include "ActivityComponent.h"
|
||||
|
||||
/**
|
||||
* Parameters for the shooting gallery that change during playtime
|
||||
@ -71,12 +72,11 @@ struct StaticShootingGalleryParams {
|
||||
* A very ancient component that was used to guide shooting galleries, it's still kind of used but a lot of logic is
|
||||
* also in the related scripts.
|
||||
*/
|
||||
class ShootingGalleryComponent final : public Component {
|
||||
class ShootingGalleryComponent final : public ActivityComponent {
|
||||
public:
|
||||
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::SHOOTING_GALLERY;
|
||||
|
||||
explicit ShootingGalleryComponent(Entity* parent);
|
||||
~ShootingGalleryComponent();
|
||||
explicit ShootingGalleryComponent(Entity* parent, int32_t activityID);
|
||||
void Serialize(RakNet::BitStream& outBitStream, bool isInitialUpdate) override;
|
||||
|
||||
/**
|
||||
|
@ -50,6 +50,8 @@ void NjMonastryBossInstance::OnPlayerLoaded(Entity* self, Entity* player) {
|
||||
// Join the player in the activity
|
||||
UpdatePlayer(self, player->GetObjectID());
|
||||
|
||||
TakeActivityCost(self, player->GetObjectID());
|
||||
|
||||
// Buff the player
|
||||
auto* destroyableComponent = player->GetComponent<DestroyableComponent>();
|
||||
if (destroyableComponent != nullptr) {
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <algorithm>
|
||||
#include "Logger.h"
|
||||
#include "Loot.h"
|
||||
#include "ShootingGalleryComponent.h"
|
||||
|
||||
bool ActivityManager::IsPlayerInActivity(Entity* self, LWOOBJID playerID) {
|
||||
const auto* sac = self->GetComponent<ScriptedActivityComponent>();
|
||||
@ -93,15 +94,16 @@ void ActivityManager::SaveScore(Entity* self, const LWOOBJID playerID, const flo
|
||||
}
|
||||
|
||||
bool ActivityManager::TakeActivityCost(const Entity* self, const LWOOBJID playerID) {
|
||||
auto* sac = self->GetComponent<ScriptedActivityComponent>();
|
||||
if (sac == nullptr)
|
||||
return false;
|
||||
ActivityComponent* activityComponent = self->GetComponent<ScriptedActivityComponent>();
|
||||
if (activityComponent == nullptr) {
|
||||
activityComponent = self->GetComponent<ShootingGalleryComponent>();
|
||||
}
|
||||
|
||||
auto* player = Game::entityManager->GetEntity(playerID);
|
||||
if (player == nullptr)
|
||||
return false;
|
||||
|
||||
return sac->TakeCost(player);
|
||||
return activityComponent->TakeCost(player);
|
||||
}
|
||||
|
||||
uint32_t ActivityManager::CalculateActivityRating(Entity* self, const LWOOBJID playerID) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user