- {{ data.players.value.length }}
+ {{ data.players.value.length }}
{{ data.spectators.value.length }}
@@ -104,6 +109,7 @@
import { Icon } from "@iconify/vue";
import account from "@iconify-icons/mdi/account";
+import accountMultiple from "@iconify-icons/mdi/account-multiple";
import eye from "@iconify-icons/mdi/eye";
import lock from "@iconify-icons/mdi/lock";
import robot from "@iconify-icons/mdi/robot";
@@ -155,6 +161,9 @@ const battles = computed(() => {
return false;
}
}
+ if (settings.battlesHideNoFriends && friendsInBattle(battle).length === 0) {
+ return false;
+ }
if (searchVal.value.length > 0) {
const searchTerm = searchVal.value.toLowerCase();
if (battle.battleOptions.title.toLowerCase().includes(searchTerm)) {
@@ -189,6 +198,13 @@ const battles = computed(() => {
return scoredBattles;
});
+function friendsInBattle(battle: SpadsBattle) {
+ const friends = api.session.friends.value;
+ const playersInBattle = battle.players.value;
+ const friendsInBattle = playersInBattle.filter((player) => friends.includes(player));
+ return friendsInBattle;
+}
+
function battleScoreTooltip(data: ScoredSpadsBattle) {
const scoreExplanation = `\
All Sorting Factors: ${data.score.toFixed(2)}
@@ -271,7 +287,10 @@ function scoreBattle(battle: SpadsBattle) {
// TODO: within skill range
// TODO: median skill close to won
- // TODO: friend in lobby
+ const friendsInBattleList = friendsInBattle(battle);
+ if (friendsInBattleList.length > 0) {
+ addFactor("Friends In Battle", friendsInBattleList.length * 0.5);
+ }
// TODO: blocked in lobby
// TODO: Highly rated map
// TODO: Downloaded map