1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- //
- // IAPCtlShop.hpp
- // TileManor
- //
- // Created by 徐炼新 on 2024/9/30.
- //
- #ifndef IAPCtlShop_hpp
- #define IAPCtlShop_hpp
- #include <stdio.h>
- #include "cocos2d.h"
- #include "IAPDefine.hpp"
- #include "IAPDelegate.hpp"
- class IAPConf;
- class IAPCtlShopUI;
- NS_IAP_BEGIN
- enum UserBuyType{
- NoShopping, // 无购买行为
- LittleShopping, // 仅购买特惠
- NormalShopping, // 正常消费
- LotShopping // 土豪
- };
- class IAPCtlShop : public cocos2d::Ref {
- public:
- // 创建一个商店控制器
- static IAPCtlShop* createWith();
- // 初始化
- // cfgFN 配置文件名
- void init(std::string& cfgFN);
-
- // 设置代理
- // delegate 代理的实现
- void setDelegate(IAPDelegate* delegate);
- // 设置当前设备的等级
- // level 等级: 1 表示初级, 2 表示中级, 3 表示高级
- void setDeviceLevel(int level);
-
- // 获取当前设备等级
- int getDeviceLevel();
- // 添加一个商店版位
- // plInfo 版位信息
- bool addAPlacement(const IAPPlacement& plInfo);
- // 删除一个商店版位
- // id 卡片id(添加版位时的id)
- void removePlacement(const std::string& id);
-
- // 清空活动
- void clearPlacement();
-
- // 获取活动礼包总数
- size_t getPlacementCount();
-
- // 在某个节点中显示
- // pParent 父节点
- // requirement 对商店的要求,比如说最低金币数
- void showInNode(cocos2d::Node* pParent, ShopRequirement& requirement);
- // 以滑动卡片的形式在某个节点中显示某些版位(适用于失败时的场景)
- // pParent 父节点
- // plIds 需要的版位id
- void showPlacementsInNode(cocos2d::Node* pParent, const vector<std::string>& plIds);
-
- // 获取用户类型
- UserBuyType getUserBuyType();
-
- // 添加用户购买信息
- void addUserBuyInfo(std::string commodityID);
-
- // 清除用户购买信息
- void clearUserBuyInfo();
-
- private:
- // 获取用户购买信息中最贵的金额
- float getMaxAmount();
-
- private:
- static IAPCtlShop* _instance;
-
- IAPConf* _conf;
- IAPCtlShopUI* _shopUI;
- IAPDelegate* _delegate;
-
- int _level;
- };
- NS_IAP_END
- #endif /* IAPCtlShop_hpp */
|