function MeleePlayerIsOpponent takes integer playerIndex, integer opponentIndex returns boolean
local player thePlayer = Player(playerIndex)
local player theOpponent = Player(opponentIndex)
// The player himself is not an opponent.
if (playerIndex == opponentIndex) then
return false
endif
// Unused player slots are not opponents.
if (GetPlayerSlotState(theOpponent) != PLAYER_SLOT_STATE_PLAYING) then
return false
endif
// Players who are already defeated are not opponents.
if (bj_meleeDefeated[opponentIndex]) then
return false
endif
// Allied players with allied victory set are not opponents.
if GetPlayerAlliance(thePlayer, theOpponent, ALLIANCE_PASSIVE) then
if GetPlayerAlliance(theOpponent, thePlayer, ALLIANCE_PASSIVE) then
if (GetPlayerState(thePlayer, PLAYER_STATE_ALLIED_VICTORY) == 1) then
if (GetPlayerState(theOpponent, PLAYER_STATE_ALLIED_VICTORY) == 1) then
return false
endif
endif
endif
endif
return true
endfunction