Если переводить дословно: Иначе-Если...
Посмотрите ваш код полностью:
if flag: #Вы говорите, что если значение переменной flag True, то выполняете часть кода.
...
elif enemy: Иначе, если значение переменной enemy True. Проверяем, только если flag False.
...
Т. е., в данном случае, если значение переменной flag равно True, вы выполните только часть кода до elif и даже не будете проверять, чему равно значение переменной enemy.
Если же значение flag False, то вы проверите, а равно ли значение переменной enemy True..
Более наглядно.
flag = True
enemy = True
if flag:
...
if enemy: # При такой записи значение enemy будет проверяться в любом случае, не зависимо от значения flag
...
if flag:
...
elif enemy: # Значение будет проверяться только в том случае, если значение flag False
ветвление в питоне реализовано через оператор if - elif ...- else. количество elif то есть промежуточных проверок, выполняемых если предыдущая вернула ошибку не ограничено. else и elif являются необязательными ветвлениями условного оператора. Также ветвление может быть организовано при использовании тернарного оператора. Еще один вид ветвления - система обработки ошибок try except.
сосбственно последний работает очень похоже на простой оператор ветвления: Если поймано некое исключение то происходит последовательный перебор предложенных программистом вариантов ошибки. Если ни одна не совпадает, то срабатывает блок else