Skip to content

Commit 8b480b6

Browse files
author
MadeByIToncek
committed
Config progress
Updating Hibernate to version v7.0.0.Final
1 parent 1cd0984 commit 8b480b6

File tree

14 files changed

+129
-119
lines changed

14 files changed

+129
-119
lines changed

server/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ repositories {
1313
}
1414

1515
String lombokVersion = "1.18.38"
16-
String hibernateVersion = "7.0.0.CR1"
16+
String hibernateVersion = "7.0.0.Final"
1717

1818
dependencies {
1919
testImplementation platform('org.junit:junit-bom:5.10.0')

server/src/main/java/space/itoncek/trailcompass/exchange/GameManagerExchange.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public SeekerLocationResponse getSeekerLocation(SeekerLocationRequest request) t
8383
.stream()
8484
.filter(x -> {
8585
try {
86-
return !server.config.getConfig().getHider().equals(x.getId());
86+
return !server.config.getConfig().getRules().getHider().equals(x.getId());
8787
} catch (IOException e) {
8888
return false;
8989
}

server/src/main/java/space/itoncek/trailcompass/gamedata/HomeGameDeck.java

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package space.itoncek.trailcompass.gamedata;
22

3+
import space.itoncek.trailcompass.TrailServer;
34
import space.itoncek.trailcompass.database.DatabaseCard;
5+
import space.itoncek.trailcompass.objects.CardClass;
46
import space.itoncek.trailcompass.objects.CardType;
57

6-
import java.util.ArrayList;
7-
import java.util.Collections;
8-
import java.util.List;
9-
import java.util.UUID;
8+
import java.io.IOException;
9+
import java.util.*;
1010

1111
public class HomeGameDeck {
12-
public List<DatabaseCard> cards = new ArrayList<>();
12+
public final List<DatabaseCard> cards = new ArrayList<>();
1313

14-
public HomeGameDeck() {
14+
public HomeGameDeck(TrailServer server) {
1515
cards.addAll(generateCurses());
1616
cards.addAll(generateCards(25, CardType.TimeBonusRed));
1717
cards.addAll(generateCards(15, CardType.TimeBonusOrange));
@@ -21,41 +21,26 @@ public HomeGameDeck() {
2121
cards.addAll(generateCards(4, CardType.Randomize));
2222
cards.addAll(generateCards(4, CardType.Veto));
2323
cards.addAll(generateCards(2, CardType.Duplicate));
24-
cards.addAll(generateCards(1, CardType.Move));
2524
cards.addAll(generateCards(4, CardType.Discard1));
2625
cards.addAll(generateCards(4, CardType.Discard2));
2726
cards.addAll(generateCards(2, CardType.Draw1Expand));
2827

29-
Collections.shuffle(cards);
28+
try {
29+
if(server.config.getConfig().getRules().isIncludeMoveCard()) {
30+
cards.addAll(generateCards(1, CardType.Move));
31+
}
32+
} catch (IOException e) {
33+
throw new RuntimeException("Unable to read config!",e);
34+
}
35+
36+
Collections.shuffle(cards);
3037
}
3138

3239
private List<DatabaseCard> generateCurses() {
33-
List<DatabaseCard> tempCards = new ArrayList<>();
34-
tempCards.add(generateCard(CardType.Curse_Zoologist));
35-
tempCards.add(generateCard(CardType.Curse_UnguidedTourist));
36-
tempCards.add(generateCard(CardType.Curse_EndlessTumble));
37-
tempCards.add(generateCard(CardType.Curse_HiddenHangman));
38-
tempCards.add(generateCard(CardType.Curse_OverflowingChalice));
39-
tempCards.add(generateCard(CardType.Curse_MediocreTravelAgent));
40-
tempCards.add(generateCard(CardType.Curse_LuxuryCard));
41-
tempCards.add(generateCard(CardType.Curse_UTurn));
42-
tempCards.add(generateCard(CardType.Curse_BridgeTroll));
43-
tempCards.add(generateCard(CardType.Curse_WaterWeight));
44-
tempCards.add(generateCard(CardType.Curse_JammmedDoor));
45-
tempCards.add(generateCard(CardType.Curse_Cairn));
46-
tempCards.add(generateCard(CardType.Curse_Urbex));
47-
tempCards.add(generateCard(CardType.Curse_ImpressionableConsumer));
48-
tempCards.add(generateCard(CardType.Curse_EggPartner));
49-
tempCards.add(generateCard(CardType.Curse_DistantCuisine));
50-
tempCards.add(generateCard(CardType.Curse_RightTurn));
51-
tempCards.add(generateCard(CardType.Curse_Labyrinth));
52-
tempCards.add(generateCard(CardType.Curse_BirdGuide));
53-
tempCards.add(generateCard(CardType.Curse_SpottyMemory));
54-
tempCards.add(generateCard(CardType.Curse_LemonPhylactery));
55-
tempCards.add(generateCard(CardType.Curse_DrainedBrain));
56-
tempCards.add(generateCard(CardType.Curse_RansomNote));
57-
tempCards.add(generateCard(CardType.Curse_GamblersFeet));
58-
return tempCards;
40+
return Arrays.stream(CardType.values())
41+
.filter(x->x.cardClass.equals(CardClass.Curse))
42+
.map(this::generateCard)
43+
.toList();
5944
}
6045

6146
private DatabaseCard generateCard(CardType type) {

server/src/main/java/space/itoncek/trailcompass/gamedata/metadata/CurseMetadataHandler.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
package space.itoncek.trailcompass.gamedata.metadata;
22

3+
import space.itoncek.trailcompass.TrailServer;
4+
import space.itoncek.trailcompass.modules.config.GameSize;
35
import space.itoncek.trailcompass.objects.CardClass;
46
import space.itoncek.trailcompass.objects.CardType;
57

8+
import java.io.IOException;
9+
610
public class CurseMetadataHandler {
7-
public static CardMetadata parseMetadata(CardType type) {
11+
private final TrailServer server;
12+
13+
public CurseMetadataHandler(TrailServer server) {
14+
this.server = server;
15+
}
16+
17+
private static CardMetadata parseMetadata(CardType type) {
818
// Regex to parse different values depending on game size
919
// /\[([^\]]+),([^\]]+),([^\]]+)\]/gm
1020

@@ -58,7 +68,21 @@ public static CardMetadata parseMetadata(CardType type) {
5868
case Curse_GamblersFeet ->
5969
new CardMetadata(CardClass.Curse, "The Gambler's Feet", "For the next [20 minutes,40 minutes,60 minutes] minutes seekers must roll a die before they take any steps in any direction, they may take that many steps before rolling again", "Roll a die if its even number this curse has no effect");
6070
case TimeBonusRed, TimeBonusOrange, TimeBonusYellow, TimeBonusGreen, TimeBonusBlue, Randomize, Veto,
61-
Duplicate, Move, Discard1, Discard2, Draw1Expand -> PowerupMetadataHandler.parseMetadata(type);
71+
Duplicate, Move, Discard1, Discard2, Draw1Expand -> null;
6272
};
6373
}
74+
75+
public CardMetadata parseMetadataContextDependant(CardType cardType) throws IOException {
76+
GameSize size = server.config.getConfig().getRules().getSize();
77+
78+
if(cardType.cardClass != CardClass.Curse) {
79+
throw new IllegalArgumentException("Card is not a curse!");
80+
}
81+
82+
CardMetadata cardMetadata = parseMetadata(cardType);
83+
84+
//TODO)) change description based on game size
85+
86+
return cardMetadata;
87+
}
6488
}

server/src/main/java/space/itoncek/trailcompass/gamedata/metadata/MetadataHandler.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

server/src/main/java/space/itoncek/trailcompass/gamedata/metadata/PowerupMetadataHandler.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

server/src/main/java/space/itoncek/trailcompass/modules/DeckManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void resetDeck() {
2222
}
2323

2424
private void initNewDeck() {
25-
HomeGameDeck deck = new HomeGameDeck();
25+
HomeGameDeck deck = new HomeGameDeck(server);
2626
server.ef.runInTransaction(em -> {
2727
deck.cards.stream().map(x -> {
2828
DatabaseCard card = new DatabaseCard();

server/src/main/java/space/itoncek/trailcompass/modules/GameManager.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import space.itoncek.trailcompass.TrailServer;
44
import space.itoncek.trailcompass.commons.objects.GameState;
55
import space.itoncek.trailcompass.modules.config.Config;
6+
import space.itoncek.trailcompass.modules.config.RestPeriod;
67

78
import java.io.IOException;
89
import java.time.ZonedDateTime;
910
import java.util.UUID;
1011

12+
import static space.itoncek.trailcompass.commons.objects.GameState.*;
13+
1114
public class GameManager {
1215
private final TrailServer server;
1316

@@ -17,21 +20,34 @@ public GameManager(TrailServer server) {
1720

1821
public GameState getGameState() throws IOException {
1922
Config cfg = server.config.getConfig();
20-
ZonedDateTime start = cfg.getStartTime();
21-
if(ZonedDateTime.now().isBefore(start)) {
22-
return GameState.OUTSIDE_OF_GAME;
23-
}else if (ZonedDateTime.now().isBefore(cfg.getStartTime().plusSeconds(cfg.getMovePeriodSeconds()))) {
24-
return GameState.MOVE_PERIOD;
25-
} else if(ZonedDateTime.now().isBefore(cfg.getGameDayEndTime())) {
26-
return GameState.INGAME;
27-
} else return GameState.REST_PERIOD;
23+
ZonedDateTime now = ZonedDateTime.now();
24+
if (now.isBefore(cfg.getTime().getStartTime())) {
25+
return WAITING_FOR_GAME;
26+
} else if (now.isBefore(cfg.getTime().getStartTime().plusSeconds(cfg.getRules().getMovePeriodSeconds()))) {
27+
return MOVE_PERIOD;
28+
} else {
29+
boolean restPeriod = false;
30+
for (RestPeriod x : cfg.getTime().getRestPeriods()) {
31+
restPeriod = restPeriod || x.isInside(now);
32+
}
33+
34+
if (restPeriod) {
35+
return REST_PERIOD;
36+
} else {
37+
if (now.isAfter(cfg.getTime().getEndTime())) {
38+
return ENDED;
39+
} else {
40+
return INGAME;
41+
}
42+
}
43+
}
2844
}
2945

3046
public UUID getCurrentHider() throws IOException {
31-
return server.config.getConfig().getHider();
47+
return server.config.getConfig().getRules().getHider();
3248
}
3349

3450
public ZonedDateTime getStartingTime() throws IOException {
35-
return server.config.getConfig().getStartTime();
51+
return server.config.getConfig().getTime().getStartTime();
3652
}
3753
}

server/src/main/java/space/itoncek/trailcompass/modules/config/Config.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,12 @@
22

33
import lombok.Getter;
44
import lombok.Setter;
5-
import space.itoncek.trailcompass.TrailServer;
6-
import space.itoncek.trailcompass.database.DatabasePlayer;
75

86
import java.io.Serializable;
9-
import java.time.LocalDate;
10-
import java.time.ZoneId;
11-
import java.time.ZonedDateTime;
12-
import java.util.List;
13-
import java.util.UUID;
147

158
@Getter
169
@Setter
1710
public class Config implements Serializable {
18-
ZonedDateTime startTime;
19-
ZonedDateTime gameDayEndTime;
20-
UUID hider;
21-
long movePeriodSeconds;
22-
23-
public static Config generateConfig(TrailServer server) {
24-
Config cfg = new Config();
25-
26-
cfg.startTime = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).plusHours(8);
27-
server.ef.runInTransaction(em -> {
28-
List<DatabasePlayer> players = em.createNamedQuery("findAllPlayers", DatabasePlayer.class).getResultList();
29-
cfg.hider = players.getFirst().getId();
30-
});
31-
32-
return cfg;
33-
}
11+
RuleConfig rules;
12+
TimeConfig time;
3413
}

0 commit comments

Comments
 (0)