2022-08-06 03:01:59 +00:00
|
|
|
#pragma once
|
2021-12-05 17:54:36 +00:00
|
|
|
|
|
|
|
#include "Entity.h"
|
|
|
|
#include "Component.h"
|
2023-03-04 07:16:37 +00:00
|
|
|
#include "eReplicaComponentType.h"
|
2021-12-05 17:54:36 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The property guard that stands on a property before it's claimed, allows entities to attempt claiming this property.
|
|
|
|
*/
|
2024-01-24 05:13:23 +00:00
|
|
|
class PropertyVendorComponent final : public Component {
|
2021-12-05 17:54:36 +00:00
|
|
|
public:
|
2024-01-24 05:13:23 +00:00
|
|
|
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::PROPERTY_VENDOR;
|
2021-12-05 17:54:36 +00:00
|
|
|
explicit PropertyVendorComponent(Entity* parent);
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
/**
|
|
|
|
* Handles a use event from some entity, if the property is cleared this allows the entity to claim it
|
|
|
|
* @param originator the entity that triggered this event
|
|
|
|
*/
|
2021-12-05 17:54:36 +00:00
|
|
|
void OnUse(Entity* originator) override;
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
/**
|
|
|
|
* Handles a property data query after the property has been claimed, sending information about the property to the
|
|
|
|
* triggering entity.
|
|
|
|
* @param originator the entity that triggered the event
|
|
|
|
* @param sysAddr the system address to send game message response to
|
|
|
|
*/
|
2021-12-05 17:54:36 +00:00
|
|
|
void OnQueryPropertyData(Entity* originator, const SystemAddress& sysAddr);
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
/**
|
|
|
|
* Claims the property
|
|
|
|
* @param originator the entity that attempted to claim the property
|
|
|
|
* @param confirmed unused
|
|
|
|
* @param lot unused
|
|
|
|
* @param count unused
|
|
|
|
*/
|
2021-12-05 17:54:36 +00:00
|
|
|
void OnBuyFromVendor(Entity* originator, bool confirmed, LOT lot, uint32_t count);
|
|
|
|
};
|