isPlayerEliminated(UUID)   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
package de.pewpewproject.lasertag.lasertaggame.state.management.client.implementation;
2
3
import de.pewpewproject.lasertag.lasertaggame.state.management.client.IClientLasertagManager;
4
import de.pewpewproject.lasertag.lasertaggame.state.management.client.IEliminationManager;
5
import de.pewpewproject.lasertag.lasertaggame.state.synced.implementation.TeamsConfigState;
6
import de.pewpewproject.lasertag.lasertaggame.team.TeamDto;
7
8
import java.util.List;
9
import java.util.UUID;
10
11
/**
12
 * Implementation of IElimination manager for the lasertag game
13
 *
14
 * @author Étienne Muser
15
 */
16
public class EliminationManager implements IEliminationManager {
17
18
    private IClientLasertagManager clientManager;
19
20
    public void setClientManager(IClientLasertagManager clientManager) {
21
        this.clientManager = clientManager;
22
    }
23
24
    @Override
25
    public synchronized long getEliminationCount(UUID playerUuid) {
26
        return clientManager.getSyncedState().getEliminationState().getEliminationCount(playerUuid);
27
    }
28
29
    @Override
30
    public synchronized void setEliminationCount(UUID playerUuid, long eliminationCount) {
31
        clientManager.getSyncedState().getEliminationState().setEliminationCount(playerUuid, eliminationCount);
32
    }
33
34
    @Override
35
    public synchronized List<Integer> getRemainingTeamIds() {
36
37
        // Get the game managers
38
        var teamsManager = clientManager.getTeamsManager();
39
        var teamsConfigState = clientManager.getSyncedState().getTeamsConfigState();
40
        var eliminationState = clientManager.getSyncedState().getEliminationState();
41
42
        return teamsConfigState.getTeams().stream()
43
                .filter(team -> !teamsManager.getPlayersOfTeam(team).isEmpty())
44
                .filter(team -> !team.equals(TeamsConfigState.SPECTATORS))
45
                .map(TeamDto::id)
46
                .filter(id -> !eliminationState.isTeamEliminated(id))
47
                .toList();
48
    }
49
50
    @Override
51
    public synchronized void setTeamEliminated(int teamId) {
52
53
        clientManager.getSyncedState().getEliminationState().eliminateTeam(teamId);
54
    }
55
56
    @Override
57
    public synchronized void setTeamSurviveTime(int teamId, long surviveTime) {
58
59
        clientManager.getSyncedState().getEliminationState().setTeamSurviveTime(teamId, surviveTime);
60
    }
61
62
    @Override
63
    public synchronized void setPlayerEliminated(UUID playerUuid) {
64
65
        clientManager.getSyncedState().getEliminationState().eliminatePlayer(playerUuid);
66
    }
67
68
    @Override
69
    public synchronized void setPlayerSurviveTime(UUID playerUuid, long surviveTime) {
70
71
        clientManager.getSyncedState().getEliminationState().setPlayerSurviveTime(playerUuid, surviveTime);
72
    }
73
74
    @Override
75
    public boolean isTeamEliminated(int teamId) {
76
        return clientManager.getSyncedState().getEliminationState().isTeamEliminated(teamId);
77
    }
78
79
    @Override
80
    public boolean isPlayerEliminated(UUID playerUuid) {
81
        return clientManager.getSyncedState().getEliminationState().isPlayerEliminated(playerUuid);
82
    }
83
84
    @Override
85
    public synchronized void reset() {
86
        clientManager.getSyncedState().getEliminationState().reset();
87
    }
88
}
89