Files
Sun1602/Server/GameServer/DominationAuction.h
T
2022-10-26 12:25:11 +08:00

124 lines
2.8 KiB
C++

#pragma once
/*
占领前拍卖类:拍卖信息及拍卖处理器
*/
#ifndef DOMINATION_AUCTION_H
#define DOMINATION_AUCTION_H
#ifdef _NA001385_20090924_DOMINATION
#include "SystemMemo.h"
typedef STLX_MAP<GUILDGUID, DominationAuctionInfo> AuctionInfoMap;
typedef AuctionInfoMap::iterator AuctionInfoIterator;
typedef AuctionInfoMap::const_iterator ConstAuctionInfoIterator;
class DominationAuction
{
public:
DominationAuction(MAPCODE map_code);
~DominationAuction();
//拍卖信息设置
void SetInfo(const DominationAuctionInfo* auction_info, int data_count);
//获取拍卖区域地图代码
MAPCODE GetMapCode()const;
//拍卖信息是否已加载
bool IsLoaded()const;
//请求拍卖信息
void RequestData()const;
//拍卖数据输入:分别返回新出价和重复出价。
eDOMINATION_TENDER_TYPE EntryAuction(const DominationAuctionInfo& auction_info);
//公会拍卖金额
MONEY GetTenderCost(GUILDGUID guild_guid)const;
//该地区最高拍卖价
MONEY GetBestTenderCost()const;
//选择公会
const DominationAuctionInfo* SelectAttackGuild()const;
//请求拍卖清单
BYTE GetAuctionList(DOMINATION_ACTION_INFO* OUT auction_list, BYTE max_count)const;
//删除拍卖数据
void DeleteAuctionInfo(GUILDGUID guild_guid);
//拍卖数据初始化
void ClearAuctionInfo();
//发送拍卖奖励备忘录
void SendRewardMemo(SLOTCODE item_code, eSYSTEM_MEMO_TYPE memo_type)const;
//拍卖次数
BYTE CountAuctionList()const;
//GUILDGUID的公会是否出价:返回true(出价历史存在)/false(出价历史不存在)
bool IsApplyToGuild(GUILDGUID guild_guid)const;
private:
//输入拍卖信息
void _InsertData();
//is_load_auction_info_
bool _IsLoadData()const;
void _IsLoadData(bool set_value);
//拍卖数据控制(输入/更改)
void _InsertData(const DominationAuctionInfo& auction_info);
void _ChangeData(const DominationAuctionInfo& auction_info);
//查找/访问拍卖信息
const DominationAuctionInfo* _GetInfo(GUILDGUID guild_guid)const;
DominationAuctionInfo* _AccessInfo(GUILDGUID guild_guid);
//比较拍卖出价(如果 true:first 大于或等于,false:first 小于)
bool _Comp(const DominationAuctionInfo* first_data,
const DominationAuctionInfo* second_data)const;
//查找最高出价金额数据
const DominationAuctionInfo* _FindBestCostGuild()const;
//根据投标项目数量随机选择
const DominationAuctionInfo* _ProbabilityFindGuild()const;
private:
MAPCODE map_code_;//拍卖区地图代码
AuctionInfoMap auction_info_map_;//拍卖地图
bool is_load_data_;//已加载占用前拍卖信息
SystemMemo system_memo_;//系统说明
};
inline bool
DominationAuction::_IsLoadData()const
{
return is_load_data_;
}
inline void
DominationAuction::_IsLoadData(bool set_value)
{
is_load_data_ = set_value;
}
inline MAPCODE
DominationAuction::GetMapCode()const
{
return map_code_;
}
inline bool
DominationAuction::IsLoaded()const
{
return _IsLoadData();
}
#endif//_NA001385_20090924_DOMINATION
#endif//DOMINATION_AUCTION_H