DarkflameServer/dGame/dComponents/PropertyVendorComponent.h

38 lines
1.2 KiB
C
Raw Permalink Normal View History

2022-08-06 03:01:59 +00:00
#pragma once
#include "Entity.h"
#include "Component.h"
#include "eReplicaComponentType.h"
/**
* The property guard that stands on a property before it's claimed, allows entities to attempt claiming this property.
*/
class PropertyVendorComponent final : public Component {
public:
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::PROPERTY_VENDOR;
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
*/
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
*/
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
*/
void OnBuyFromVendor(Entity* originator, bool confirmed, LOT lot, uint32_t count);
};