mirror of
				https://github.com/DarkflameUniverse/DarkflameServer.git
				synced 2025-10-30 20:22:04 +00:00 
			
		
		
		
	fix: imaginite not being taken when starting shooting gallery (#1823)
This commit is contained in:
		| @@ -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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 David Markowitz
					David Markowitz