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_name(msg.name());
p->set_avatar_url(msg.avatar_url());
if (choose_hero_times > 0) {
if (choose_hero_times <= 0) {
p->set_hero_id(0);
} else {
p->set_hero_id(msg.hero_id());
@ -221,7 +221,21 @@ void MatchTeam::UpdateMaster()
break;
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) {
for (int i = 0; i < 4; ++i) {
AutoChoose(true);
}
phase_ = kMatchLock;
phase_start_tick_ = a8::XGetTickCount();
countdown_ = MetaMgr::Instance()->match_lock_time;
@ -420,3 +434,16 @@ void MatchTeam::ChooseLeader()
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 StartGame();
void ChooseLeader();
void AutoChoose(bool force = false);
private:
long long phase_start_tick_ = 0;
@ -91,6 +92,7 @@ class MatchTeam
long long create_tick_ = 0;
std::map<std::string, std::shared_ptr<RawTeamMember>> raw_member_hash_;
std::shared_ptr<RawTeamMember> first_member_;
long long last_auto_choose_tick_ = 0;
std::map<std::string, MatchTeam*> combined_team_hash_;
MatchTeam* master_team_ = nullptr;

View File

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