#pragma once
#include <map>
struct Fish_FishCFGData
{
	//key
	int mID;
	//鱼名字
	std::string mFishName;
	//模型ID
	int mModelID;
	//分数
	int mScore;
	//玩法鱼分值
	int mFishPoints;
	//魔石
	std::vector<int> mDimensity;
	//鱼类型
	int mType;
	//掉落钻石
	int mDropGem;
	//显示半径
	int mShowRadius;
	//层
	int mLayer;
	//渔网能击中
	bool mCanNetHit;
	//死亡效果
	std::vector<int> mServerDieParam;
	//死亡效果参数
	std::vector<float> mDieEffectParam;
	//死亡特效
	int mDieEffect;
	//屏幕震动
	bool mShockScreen;
	//掉落金币(ID,数量)
	int mDropGold;
	//效果类型
	int mEffectType;
	//金币转盘
	int mGoldPlate;
	//全屏转盘
	int mScreenPlate;
	//死亡声音
	std::vector<int> mDieSoundID;
	//显示图鉴
	bool mShowBook;
	//图鉴图标
	std::string mBookIcon;
	//图鉴比例
	float mBookScale;
	//图片名字
	std::string mBookName;
	//图鉴信息
	std::string mBookInfo;
	//是否boss
	bool mIsBOSS;
	//是否可被冰冻
	bool mIsFrozen;
	//是否话费鱼
	bool mIsLottery;
	//显示星星
	bool mShowStar;
	//半径
	float mRadius;
	//显示道具
	int mDisplayItem;
	//道具泡泡偏移
	std::vector<int> mItemBubble;
	//聊天泡泡
	std::vector<int> mChatBubble;
	//泡泡偏移
	std::vector<int> mChatOffset;
	//道具泡泡缩放
	float mItemBubbleScale;
	//能否被炸弹击中
	bool mCanBomb;
	//显示序号
	int mShowIndex;
	//显示类型1-普通鱼 2-黄金 3-特殊 4-boss 5-玩法鱼
	int mShowType;
	//显示分数
	std::string mShowScore;
	//红鱼，全屏炸弹随机范围
	int mBombRange;
	//能否被被弹头击中
	std::string mCanHitByBulletHead;
	//鱼分数类型：1正常分数，取Score字段；2浮动倍率，取BombRange,Score字段；3变倍鱼取TimesRange字段;4钻头虾变倍
	int mScoreType;
	//变倍鱼倍数以及概率
	std::vector<int> mTimesRange;
	//点杀点送分值
	int mKillAndSendScore;
};

class Fish_FishCFG
{
public:
private:
	static std::auto_ptr<Fish_FishCFG> msSingleton;
public:
	int GetCount();
	const Fish_FishCFGData* GetData(int ID);
	const std::map<int, Fish_FishCFGData>& GetMapData();
	void Load();
	void LoadLua();
	void Reload();
	static Fish_FishCFG* GetSingleton();
	static void Release();
private:
	std::map<int, Fish_FishCFGData> mMapData;
};
