diff --git a/src/k_botitem.cpp b/src/k_botitem.cpp index b7a6ad8ee..550687388 100644 --- a/src/k_botitem.cpp +++ b/src/k_botitem.cpp @@ -1246,17 +1246,34 @@ static void K_BotItemFlame(const player_t *player, ticcmd_t *cmd) if (player->botvars.itemconfirm > TICRATE) { - if (player->flametimer > 0) + if (player->botvars.difficulty >= 6 && player->flametimer <= 2*TICRATE) { cmd->buttons |= BT_ATTACK; cmd->bot.itemconfirm = 0; } + else if (player->flametimer > 0) + { + if (player->botvars.difficulty < 6 || player->flamestore < FLAMESTOREMAX - TICRATE/4) + { + cmd->buttons |= BT_ATTACK; + cmd->bot.itemconfirm = 0; + } + else + { + UINT8 difficultyadjust = MAXBOTDIFFICULTY - player->botvars.difficulty; + cmd->bot.itemconfirm = (-TICRATE/2) - difficultyadjust; + } + } } else { + if (player->botvars.difficulty >= 6 && player->flametimer <= 2*TICRATE) + { + cmd->bot.itemconfirm = 0; + } + cmd->bot.itemconfirm++; } - } /*-------------------------------------------------- @@ -1559,6 +1576,10 @@ void K_UpdateBotGameplayVarsItemUsage(player_t *player) { ; } + else if (player->flametimer > 0) + { + ; + } else { switch (player->itemtype) @@ -1567,24 +1588,6 @@ void K_UpdateBotGameplayVarsItemUsage(player_t *player) { break; } - case KITEM_FLAMESHIELD: - { - if (player->botvars.itemconfirm == 0 - && (player->itemflags & IF_HOLDREADY) == IF_HOLDREADY) - { - INT32 flamemax = player->flametimer; - - if (player->flamestore < flamemax || flamemax == 0) - { - ; - } - else - { - player->botvars.itemconfirm = (3 * flamemax / 4) + (TICRATE / 2); - } - } - break; - } } } } diff --git a/src/k_kart.c b/src/k_kart.c index 7777e77cf..480db7694 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10812,7 +10812,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) } player->flamedash += incr; - player->flamestore = min(player->flamestore + metincr, TICRATE*2); + player->flamestore = min(player->flamestore + metincr, FLAMESTOREMAX); player->flametimer -= comincr; if (player->flametimer <= 0)