1 #pragma once
2 
3 #include "IMPPolicy.h"
4 #include "ItemModel.h"
5 
6 #include "rapidjson/document.h"
7 #include <string_theory/string>
8 #include <vector>
9 
10 class ItemSystem;
11 
12 class DefaultIMPPolicy : public IMPPolicy
13 {
14 public:
15 	DefaultIMPPolicy(rapidjson::Document *json, const ItemSystem *itemSystem);
16 
17 	virtual bool isCodeAccepted(const ST::string& code) const;
18 	virtual uint8_t getStartingLevel() const;
19 	virtual const std::vector<const ItemModel *> & getInventory() const;
20 	virtual const std::vector<const ItemModel *> & getGoodShooterItems() const;
21 	virtual const std::vector<const ItemModel *> & getNormalShooterItems() const;
22 
23 protected:
24 	uint8_t m_startingLevel;
25 	std::vector<ST::string> m_activationCodes;
26 	std::vector<const ItemModel *> m_inventory;
27 	std::vector<const ItemModel *> m_goodShooterItems;
28 	std::vector<const ItemModel *> m_normalShooterItems;
29 };
30