protected virtual List <int> get_targets() { Game_Unit unit = get_unit(); bool has_items = unit.actor.has_items; List <int> temp_targets = unit.allies_in_range(1); List <int> targets = new List <int>(); // Rescued unit if (unit.is_rescuing) { Game_Unit rescued_unit = Global.game_map.units[unit.rescuing]; if ((has_items || rescued_unit.actor.has_items) && unit.same_team(rescued_unit)) { targets.Add(unit.rescuing); } } foreach (int id in temp_targets) { Game_Unit other_unit = Global.game_map.units[id]; if (unit.different_team(other_unit)) { continue; } if (has_items || other_unit.actor.has_items) { targets.Add(id); } if (other_unit.is_rescuing) { Game_Unit rescued_unit = Global.game_map.units[other_unit.rescuing]; if ((has_items || rescued_unit.actor.has_items) && unit.same_team(rescued_unit)) { targets.Add(other_unit.rescuing); } } } return(targets); }