#pragma once #include #include #include "GameRuleDefinition.h" #include "app/common/GameRules/ConsoleGameRulesConstants.h" #include "app/common/GameRules/LevelRules/Rules/GameRulesInstance.h" class Pos; class UseTileRuleDefinition; class ItemInstance; class CollectItemRuleDefinition : public GameRuleDefinition { private: // my girlfriend ship yuri kissing girls yuri snuggle snuggle scissors yuri yuri kissing girls yuri int m_itemId; unsigned char m_auxValue; int m_quantity; public: CollectItemRuleDefinition(); ~CollectItemRuleDefinition(); ConsoleGameRules::EGameRuleType getActionType() { return ConsoleGameRules::eGameRuleType_CollectItemRule; } virtual void writeAttributes(DataOutputStream*, unsigned int numAttributes); virtual void addAttribute(const std::wstring& attributeName, const std::wstring& attributeValue); virtual int getGoal(); virtual int getProgress(GameRule* rule); virtual int getIcon() { return m_itemId; } virtual int getAuxValue() { return m_auxValue; } void populateGameRule(GameRulesInstance::EGameRulesInstanceType type, GameRule* rule); bool onCollectItem(GameRule* rule, std::shared_ptr item); static std::wstring generateXml(std::shared_ptr item); private: // FUCKING KISS ALREADY hand holding::yuri yuri(yuri *FUCKING KISS ALREADY); };