12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include "DropUsedItemCondition.h"
- #include "Game.h"
- DropUsedItemCondition::DropUsedItemCondition(ItemFilter* filter)
- : DropCondition(),
- filter(filter)
- {}
- DropUsedItemCondition::~DropUsedItemCondition()
- {
- filter->release();
- }
- const ItemFilter* DropUsedItemCondition::zFilter() const
- {
- return filter;
- }
- bool DropUsedItemCondition::evaluate(Entity* zActor,
- Item* zItem,
- ItemSkill* zUsedSkill,
- Framework::Either<Block*, Entity*> zDestroyedObject)
- {
- return zItem && filter->matchItem(zItem);
- }
- bool DropNoUsedItemCondition::evaluate(Entity* zActor,
- Item* zItem,
- ItemSkill* zUsedSkill,
- Framework::Either<Block*, Entity*> zDestroyedObject)
- {
- return !zItem;
- }
- DropUsedItemConditionFactory::DropUsedItemConditionFactory()
- : SubTypeFactory()
- {}
- JSONObjectValidationBuilder* DropUsedItemConditionFactory::addToValidator(
- JSONObjectValidationBuilder* builder) const
- {
- return builder->withRequiredAttribute(
- "filter", Game::INSTANCE->zTypeRegistry()->getValidator<ItemFilter>());
- }
- const char* DropUsedItemConditionFactory::getTypeToken() const
- {
- return "itemFilter";
- }
- DropUsedItemCondition* DropUsedItemConditionFactory::fromJson(
- Framework::JSON::JSONObject* zJson) const
- {
- return new DropUsedItemCondition(
- Game::INSTANCE->zTypeRegistry()->fromJson<ItemFilter>(
- zJson->zValue("filter")));
- }
- Framework::JSON::JSONObject* DropUsedItemConditionFactory::toJsonObject(
- DropUsedItemCondition* zObject) const
- {
- Framework::JSON::JSONObject* result = new Framework::JSON::JSONObject();
- result->addValue(
- "filter", Game::INSTANCE->zTypeRegistry()->toJson(zObject->zFilter()));
- return result;
- }
- DropNoUsedItemConditionFactory::DropNoUsedItemConditionFactory()
- : SubTypeFactory()
- {}
- JSONObjectValidationBuilder* DropNoUsedItemConditionFactory::addToValidator(
- JSONObjectValidationBuilder* builder) const
- {
- return builder;
- }
- const char* DropNoUsedItemConditionFactory::getTypeToken() const
- {
- return "noItem";
- }
- DropNoUsedItemCondition* DropNoUsedItemConditionFactory::fromJson(
- Framework::JSON::JSONObject* zJson) const
- {
- return new DropNoUsedItemCondition();
- }
- Framework::JSON::JSONObject* DropNoUsedItemConditionFactory::toJsonObject(
- DropNoUsedItemCondition* zObject) const
- {
- return new Framework::JSON::JSONObject();
- }
|