bool CCSBot::IsRogue() const { CCSBotManager *ctrl = TheCSBots(); if (!ctrl->AllowRogues()) return false; // periodically re-evaluate our rogue status if (m_rogueTimer.IsElapsed()) { m_rogueTimer.Start(RANDOM_FLOAT(10, 30)); // our chance of going rogue is inversely proportional to our teamwork attribute const float rogueChance = 100.0f * (1.0f - GetProfile()->GetTeamwork()); m_isRogue = (RANDOM_FLOAT(0, 100) < rogueChance); } return m_isRogue; }