Merge branch 'skiddingAI' of https://github.com/gupascal/stk-code into gupascal-skiddingAI
This commit is contained in:
commit
ef341344e7
@ -1242,17 +1242,24 @@ void SkiddingAI::handleItems(const float dt)
|
||||
case PowerupManager::POWERUP_CAKE:
|
||||
{
|
||||
// Do not destroy your own shield
|
||||
if(m_kart->getShieldTime() > min_bubble_time) // if the kart has a shield, do not break it by using a swatter.
|
||||
if(m_kart->getShieldTime() > min_bubble_time) // if the kart has a shield, do not break it by using a cake.
|
||||
break;
|
||||
// Leave some time between shots
|
||||
if(m_time_since_last_shot<3.0f) break;
|
||||
//TODO: do not fire if the kart is driving too slow
|
||||
|
||||
// Do not fire if the kart is driving too slow
|
||||
bool kart_behind_is_slow = (m_kart_behind && m_kart_behind->getSpeed() < m_kart->getSpeed());
|
||||
bool kart_ahead_is_slow = (m_kart_ahead && m_kart_ahead->getSpeed() < m_kart->getSpeed());
|
||||
// Since cakes can be fired all around, just use a sane distance
|
||||
// with a bit of extra for backwards, as enemy will go towards cake
|
||||
bool fire_backwards = (m_kart_behind && m_kart_ahead &&
|
||||
m_distance_behind < m_distance_ahead) ||
|
||||
!m_kart_ahead;
|
||||
bool fire_backwards = !m_kart_ahead ||
|
||||
(m_kart_behind && m_kart_ahead &&
|
||||
(m_distance_behind < m_distance_ahead || kart_ahead_is_slow) &&
|
||||
!kart_behind_is_slow
|
||||
);
|
||||
if ((fire_backwards && kart_behind_is_slow) || (!fire_backwards && kart_ahead_is_slow))
|
||||
break;
|
||||
|
||||
float distance = fire_backwards ? m_distance_behind
|
||||
: m_distance_ahead;
|
||||
m_controls->m_fire = (fire_backwards && distance < 25.0f) ||
|
||||
@ -1265,7 +1272,7 @@ void SkiddingAI::handleItems(const float dt)
|
||||
case PowerupManager::POWERUP_BOWLING:
|
||||
{
|
||||
// Do not destroy your own shield
|
||||
if(m_kart->getShieldTime() > min_bubble_time) // if the kart has a shield, do not break it by using a swatter.
|
||||
if(m_kart->getShieldTime() > min_bubble_time) // if the kart has a shield, do not break it by using a bowling ball.
|
||||
break;
|
||||
// Leave more time between bowling balls, since they are
|
||||
// slower, so it should take longer to hit something which
|
||||
@ -1295,7 +1302,7 @@ void SkiddingAI::handleItems(const float dt)
|
||||
case PowerupManager::POWERUP_PLUNGER:
|
||||
{
|
||||
// Do not destroy your own shield
|
||||
if(m_kart->getShieldTime() > min_bubble_time) // if the kart has a shield, do not break it by using a swatter.
|
||||
if(m_kart->getShieldTime() > min_bubble_time) // if the kart has a shield, do not break it by using a plunger.
|
||||
break;
|
||||
|
||||
// Leave more time after a plunger, since it will take some
|
||||
|
Loading…
x
Reference in New Issue
Block a user