This commit is contained in:
aozhiwei 2021-09-28 09:45:13 +00:00
parent cfc52f7151
commit 785c62e3af
3 changed files with 31 additions and 2 deletions

View File

@ -13,7 +13,7 @@ void RawTeamMember::FillMFMatchTeamMember(cs::MFMatchTeamMember* p)
p->set_account_id(msg.account_id()); p->set_account_id(msg.account_id());
p->set_name(msg.name()); p->set_name(msg.name());
p->set_avatar_url(msg.avatar_url()); p->set_avatar_url(msg.avatar_url());
if (choose_hero_times > 0) { if (choose_hero_times <= 0) {
p->set_hero_id(0); p->set_hero_id(0);
} else { } else {
p->set_hero_id(msg.hero_id()); p->set_hero_id(msg.hero_id());
@ -221,7 +221,21 @@ void MatchTeam::UpdateMaster()
break; break;
case kMatchChoose: case kMatchChoose:
{ {
if (phase_left_time_ <= 10) {
if (last_auto_choose_tick_ <= 0) {
AutoChoose();
last_auto_choose_tick_ = a8::XGetTickCount();
} else {
if (a8::XGetTickCount() - last_auto_choose_tick_ > (last_auto_choose_tick_ % 3000)) {
AutoChoose();
last_auto_choose_tick_ = a8::XGetTickCount();
}
}
}
if (phase_left_time_ <= 0) { if (phase_left_time_ <= 0) {
for (int i = 0; i < 4; ++i) {
AutoChoose(true);
}
phase_ = kMatchLock; phase_ = kMatchLock;
phase_start_tick_ = a8::XGetTickCount(); phase_start_tick_ = a8::XGetTickCount();
countdown_ = MetaMgr::Instance()->match_lock_time; countdown_ = MetaMgr::Instance()->match_lock_time;
@ -420,3 +434,16 @@ void MatchTeam::ChooseLeader()
member->is_leader = false; member->is_leader = false;
} }
} }
void MatchTeam::AutoChoose(bool force)
{
for (auto& member : curr_member_hash_) {
if (member->choose_hero_times <= 0) {
if (member->is_robot){
++member->choose_hero_times;
} else if (force) {
++member->choose_hero_times;
}
}
}
}

View File

@ -82,6 +82,7 @@ class MatchTeam
void ShuaRobot(); void ShuaRobot();
void StartGame(); void StartGame();
void ChooseLeader(); void ChooseLeader();
void AutoChoose(bool force = false);
private: private:
long long phase_start_tick_ = 0; long long phase_start_tick_ = 0;
@ -91,6 +92,7 @@ class MatchTeam
long long create_tick_ = 0; long long create_tick_ = 0;
std::map<std::string, std::shared_ptr<RawTeamMember>> raw_member_hash_; std::map<std::string, std::shared_ptr<RawTeamMember>> raw_member_hash_;
std::shared_ptr<RawTeamMember> first_member_; std::shared_ptr<RawTeamMember> first_member_;
long long last_auto_choose_tick_ = 0;
std::map<std::string, MatchTeam*> combined_team_hash_; std::map<std::string, MatchTeam*> combined_team_hash_;
MatchTeam* master_team_ = nullptr; MatchTeam* master_team_ = nullptr;

View File

@ -348,7 +348,7 @@ public:
#ifdef DEBUG #ifdef DEBUG
MetaMgr::Instance()->match_team_time = 10; MetaMgr::Instance()->match_team_time = 10;
MetaMgr::Instance()->match_robot_time = 5; MetaMgr::Instance()->match_robot_time = 5;
MetaMgr::Instance()->match_choose_time = 60; MetaMgr::Instance()->match_choose_time = 30;
MetaMgr::Instance()->match_lock_time = 10; MetaMgr::Instance()->match_lock_time = 10;
#endif #endif
{ {