game2006/server/gameserver/mobabattle.h
aozhiwei cc2da01509 1
2023-12-27 19:13:51 +08:00

45 lines
1.5 KiB
C++

#pragma once
class Room;
class MobaTeam;
class MobaMember;
class MobaBattle
{
public:
void Init();
void UnInit();
bool GetParseOk() { return parse_ok_; }
Room* GetRoom() { return room_; }
void SetRoom(Room* room) { room_ = room; }
const std::string& GetRoomUuid() { return room_uuid_; }
const std::string& GetSign() { return sign_; }
const std::shared_ptr<a8::XObject>& GetRawData() { return raw_data_; }
int GetZoneId() { return zone_id_; }
int GetNodeId() { return zone_id_; }
int GetStartTime() { return start_time_; }
void ParseResult(a8::XObject& obj);
bool CanAdd(const std::string& account_id, const std::string& session_id);
std::shared_ptr<MobaTeam> GetTeamByAccountId(const std::string& account_id);
std::shared_ptr<MobaMember> GetMemberByAccountId(const std::string& account_id);
std::shared_ptr<MobaTeam> GetTeamByTeamUuid(const std::string& team_uuid);
bool AllIsJoined();
int GetMemberNum();
int GetTeamNum();
void TraverseMemberList(std::function<bool (MobaMember*)> func);
private:
bool parse_ok_ = false;
Room *room_ = nullptr;
std::string room_uuid_;
int zone_id_ = 0;
int node_id_ = 0;
int start_time_ = 0;
std::string sign_;
std::shared_ptr<a8::XObject> raw_data_;
std::map<std::string, std::shared_ptr<MobaTeam>> uuid_hash_;
std::map<std::string, std::shared_ptr<MobaTeam>> account_hash_;
std::map<std::string, std::shared_ptr<MobaMember>> member_id_hash_;
};