This repository was archived by the owner on Jul 3, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSettingsState.java
53 lines (41 loc) · 1.45 KB
/
SettingsState.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package berzerk.control.state;
import berzerk.control.Command;
import berzerk.model.Ecra;
import berzerk.model.Soldado;
import berzerk.model.menu.MenuModel;
import berzerk.model.settings.SettingsModel;
import berzerk.view.View;
import berzerk.view.menu.MenuView;
import java.io.IOException;
public class SettingsState extends ControllerState<SettingsModel> {
protected SettingsModel model;
public SettingsState(FactoryState state, Soldado soldado, View<SettingsModel> view){
super(state, soldado, view);
model = view.getModel();
}
@Override
public ControllerState<?> run() throws IOException {
view.draw(getPosition(model.getSelected()));
return processKey(view.getCommand(new Command()));
}
@Override
public ControllerState<?> processKey(Command command) throws IOException {
ControllerState<?> newState = this;
switch (command.getCommand()) {
case LEFT -> model.previousSelected();
case RIGHT -> model.nextSelected();
case SELECT, QUIT -> newState = state.genMenuState(soldado, new MenuView(new MenuModel(), new Ecra()));
}
return manageCommand(newState);
}
protected int getPosition(Soldado.Heroi selected){
if(selected!=null) {
return switch (selected) {
case TANKY -> 39;
case EXPERT -> 63;
default -> 14;
};
}
return 0;
}
}