IAPCtlShop.hpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // IAPCtlShop.hpp
  3. // TileManor
  4. //
  5. // Created by 徐炼新 on 2024/9/30.
  6. //
  7. #ifndef IAPCtlShop_hpp
  8. #define IAPCtlShop_hpp
  9. #include <stdio.h>
  10. #include "cocos2d.h"
  11. #include "IAPDefine.hpp"
  12. #include "IAPCtlShopUI.hpp"
  13. #include "IAPDelegate.hpp"
  14. #include "IAPConf.hpp"
  15. NS_IAP_BEGIN
  16. class IAPCtlShop : public cocos2d::Ref {
  17. public:
  18. // 创建一个商店控制器
  19. static IAPCtlShop* createWith();
  20. // 初始化
  21. // cfgFN 配置文件名
  22. void init(std::string& cfgFN);
  23. // 设置代理
  24. // delegate 代理的实现
  25. void setDelegate(IAPDelegate* delegate);
  26. // 设置当前设备的等级
  27. // level 等级: 1 表示初级, 2 表示中级, 3 表示高级
  28. void setDeviceLevel(int level);
  29. // 获取当前设备等级
  30. int getDeviceLevel();
  31. // 添加一个商店版位
  32. // plInfo 版位信息
  33. bool addAPlacement(const IAPPlacement& plInfo);
  34. // 删除一个商店版位
  35. // id 卡片id(添加版位时的id)
  36. void removePlacement(const std::string& id);
  37. // 获取活动礼包总数
  38. size_t getPlacementCount();
  39. // 在某个节点中显示
  40. // pParent 父节点
  41. // requirement 对商店的要求,比如说最低金币数
  42. void showInNode(cocos2d::Node* pParent, ShopRequirement& requirement);
  43. // 以滑动卡片的形式在某个节点中显示某些版位(适用于失败时的场景)
  44. // pParent 父节点
  45. // plIds 需要的版位id
  46. void showPlacementsInNode(cocos2d::Node* pParent, const vector<std::string>& plIds);
  47. private:
  48. static IAPCtlShop* _instance;
  49. IAPConf* _conf;
  50. IAPCtlShopUI* _shopUI;
  51. IAPDelegate* _delegate;
  52. std::set<std::string> placementIDs;
  53. int _level;
  54. };
  55. NS_IAP_END
  56. #endif /* IAPCtlShop_hpp */