From cf5f0352b6d04de68c0dbc415e86c5bbbd7189ed Mon Sep 17 00:00:00 2001 From: Agustin Escobar <106101218+agustinesco@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:18:40 -0300 Subject: [PATCH] Use visible players to filter auto aim (#947) --- apps/arena/lib/arena/game/player.ex | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/apps/arena/lib/arena/game/player.ex b/apps/arena/lib/arena/game/player.ex index fb5d1b76f..d36e29e8d 100644 --- a/apps/arena/lib/arena/game/player.ex +++ b/apps/arena/lib/arena/game/player.ex @@ -90,8 +90,8 @@ defmodule Arena.Game.Player do Map.filter(players, fn {_, player} -> alive?(player) end) end - def targetable_players(players) do - Map.filter(players, fn {_, player} -> alive?(player) and not invisible?(player) end) + def targetable_players(current_player, players) do + Map.filter(players, fn {_, player} -> alive?(player) and visible?(current_player, player) end) end def stamina_full?(player) do @@ -225,7 +225,7 @@ defmodule Arena.Game.Player do {auto_aim?, skill_direction} = skill_params.target - |> Skill.maybe_auto_aim(skill, player, targetable_players(game_state.players)) + |> Skill.maybe_auto_aim(skill, player, targetable_players(player, game_state.players)) |> case do {false, _} -> Skill.maybe_auto_aim(skill_params.target, skill, player, Crate.alive_crates(game_state.crates)) @@ -380,11 +380,8 @@ defmodule Arena.Game.Player do end end - def invisible?(player) do - get_in(player, [:aditional_info, :effects]) - |> Enum.any?(fn effect -> - Enum.any?(effect.effect_mechanics, fn {mechanic, _} -> mechanic == :invisible end) - end) + def visible?(current_player, candidate_player) do + candidate_player.id in current_player.aditional_info.visible_players end def remove_expired_effects(player) do