hover effect FX

This commit is contained in:
2026-04-14 06:19:19 +02:00
parent efeb75d5a9
commit f6b5bfcc06
5 changed files with 197 additions and 6 deletions

View File

@@ -108,7 +108,7 @@ public class Game {
gameBoard.initOfferingTiles(players.size());
gameBoard.setupInitialRows(players.size());
gameBoard.getTurnTile().setInitialOrder(players, true);
gameBoard.getTurnTile().setInitialOrder(players, shuffle);
dealInitialFood();
round = 1;
@@ -173,8 +173,6 @@ public class Game {
totemPlacedCount++;
logger.debug("player {} TOTEM PLACED ON TILE {}", player.getNickname() , chosen.getLetter());
// + " (" + totemPlacedCount + "/" + players.size() + ").");
if (totemPlacedCount == players.size()) {
logger.info(" ----- START ACTION RESOLUTION ---- ");
startActionResolution();

View File

@@ -180,4 +180,22 @@ public class CardDeck {
buildingDeck.get(era).remove(card);
return card;
}
// for testing only
public Card drawTestTribe(int cardId) {
Card card = tribeDeck.stream().filter(c->c.getCardId()==cardId).findFirst().orElse(null);
if (card!=null) {
System.out.println("CARTA FOUND " + cardId + " --> " + card);
tribeDeck.remove(card);
}
return card;
}
// for testing only
public Card drawTestBuilding(int cardId, Era era) {
Card card = buildingDeck.get(era).stream().filter(c->c.getCardId()==cardId).map(Card.class::cast).findFirst().orElse(null);
if (card!=null) {
buildingDeck.get(era).remove(card);
}
return card;
}
}

View File

@@ -0,0 +1,117 @@
C;1;0;I;HUNTER;1;0
C;2;0;I;HUNTER;1;0
C;3;0;I;HUNTER;0;0
C;4;3;I;HUNTER;0;0
C;5;3;I;HUNTER;0;0
C;6;0;I;BUILDER;1;3
C;7;0;I;BUILDER;2;0
C;8;5;I;BUILDER;2;1
C;9;0;I;BUILDER;1;2
C;10;0;I;GATHERER;3;0
C;11;0;I;GATHERER;3;0
C;12;3;I;GATHERER;3;0
C;13;5;I;GATHERER;3;0
C;14;0;I;ARTIST;0;0
C;15;0;I;ARTIST;0;0
C;16;0;I;ARTIST;0;0
C;17;3;I;ARTIST;0;0
C;18;4;I;ARTIST;0;0
C;19;0;I;INVENTOR;1;0
C;20;0;I;INVENTOR;2;0
C;21;0;I;INVENTOR;3;0
C;22;0;I;INVENTOR;4;0
C;23;4;I;INVENTOR;5;0
C;24;4;I;INVENTOR;6;0
C;25;4;I;INVENTOR;7;0
C;26;5;I;SHAMAN;2;0
C;27;0;I;SHAMAN;2;0
C;28;0;I;SHAMAN;1;0
C;29;4;I;SHAMAN;1;0
C;30;0;II;HUNTER;0;0
C;31;0;II;HUNTER;0;0
C;32;3;II;HUNTER;1;0
C;33;0;II;HUNTER;1;0
C;34;4;II;HUNTER;1;0
C;35;5;II;HUNTER;0;0
C;36;0;II;BUILDER;1;4
C;37;0;II;BUILDER;2;1
C;38;3;II;BUILDER;1;2
C;39;0;II;BUILDER;2;3
C;40;0;II;GATHERER;3;0
C;41;3;II;GATHERER;3;0
C;42;4;II;GATHERER;3;0
C;43;5;II;GATHERER;3;0
C;44;3;II;ARTIST;0;0
C;45;0;II;ARTIST;0;0
C;46;0;II;ARTIST;0;0
C;47;0;II;ARTIST;0;0
C;48;0;II;INVENTOR;8;0
C;49;4;II;INVENTOR;9;0
C;50;0;II;INVENTOR;5;0
C;51;0;II;INVENTOR;6;0
C;52;0;II;INVENTOR;7;0
C;53;0;II;INVENTOR;1;0
C;54;0;II;SHAMAN;2;0
C;55;0;II;SHAMAN;2;0
C;56;5;II;SHAMAN;1;0
C;57;5;II;SHAMAN;2;0
C;58;5;III;HUNTER;1;0
C;59;0;III;HUNTER;0;0
C;60;0;III;HUNTER;0;0
C;61;0;III;HUNTER;1;0
C;62;0;III;BUILDER;1;5
C;63;0;III;BUILDER;2;3
C;64;5;III;BUILDER;1;4
C;65;0;III;BUILDER;2;2
C;66;5;III;GATHERER;3;0
C;67;4;III;GATHERER;3;0
C;68;0;III;GATHERER;3;0
C;69;5;III;ARTIST;0;0
C;70;0;III;ARTIST;0;0
C;71;0;III;ARTIST;0;0
C;72;0;III;ARTIST;0;0
C;73;4;III;INVENTOR;10;0
C;74;3;III;INVENTOR;2;0
C;75;3;III;INVENTOR;3;0
C;76;0;III;INVENTOR;8;0
C;77;0;III;INVENTOR;9;0
C;78;0;III;INVENTOR;10;0
C;79;0;III;INVENTOR;4;0
C;80;3;III;SHAMAN;2;0
C;81;0;III;SHAMAN;3;0
C;82;0;III;SHAMAN;2;0
C;83;0;III;SHAMAN;3;0
C;84;4;III;SHAMAN;2;0
E;85;0;I;HUNT;1;1
E;86;0;I;SUSTAINMENT;1;1
E;87;0;I;SHAMANIC_RITUAL;5;3
E;88;0;I;CAVE_PAINTINGS;2;1
E;89;0;II;HUNT;1;2
E;90;0;II;SUSTAINMENT;1;2
E;91;0;II;SHAMANIC_RITUAL;10;5
E;92;0;II;CAVE_PAINTINGS;2;2
E;93;0;III;HUNT;1;3
E;94;0;III;CAVE_PAINTINGS;2;3
E;95;0;FINAL;SUSTAINMENT;1;3
E;96;0;FINAL;SHAMANIC_RITUAL;15;7
B;97;0;I;4;3;FOOD_FOR_SIX
B;98;0;I;4;4;SUSTAIN_DISCOUNT
B;99;0;I;5;3;SUSTAIN_DISCOUNT
B;100;0;I;5;2;SHAMAN_NO_LOSS
B;101;0;I;3;3;BONUS_FOOD_ENDTURN
B;102;0;I;3;4;FOOD_PER_INVENTORS
B;103;0;II;7;0;SHAMAN_DOUBLE_POINTS
B;104;0;II;6;4;SHAMAN_BONUS
B;105;0;II;7;4;SUSTAIN_DISCOUNT
B;106;0;II;7;2;HUNT_BONUS
B;107;0;II;6;4;ENDGAME_BUILDER_BONUS
B;108;0;II;5;6;PAINTING_FOOD_BONUS
B;109;0;II;5;6;ENDGAME_FOR_SIX
B;110;0;III;8;8;ENDGAME_BONUS_CHARACTER
B;111;0;III;7;6;ENDGAME_BONUS_CHARACTER
B;112;0;III;7;4;ENDGAME_BONUS_CHARACTER
B;113;0;III;6;3;ENDGAME_BONUS_CHARACTER
B;114;0;III;7;4;ENDGAME_BONUS_CHARACTER
B;115;0;III;6;6;ENDGAME_BONUS_CHARACTER
B;116;0;III;9;3;EXTRA_DRAW
B;117;0;III;10;0;ENDGAME_BONUS_POINTS
1 C 1 0 I HUNTER 1 0
2 C 2 0 I HUNTER 1 0
3 C 3 0 I HUNTER 0 0
4 C 4 3 I HUNTER 0 0
5 C 5 3 I HUNTER 0 0
6 C 6 0 I BUILDER 1 3
7 C 7 0 I BUILDER 2 0
8 C 8 5 I BUILDER 2 1
9 C 9 0 I BUILDER 1 2
10 C 10 0 I GATHERER 3 0
11 C 11 0 I GATHERER 3 0
12 C 12 3 I GATHERER 3 0
13 C 13 5 I GATHERER 3 0
14 C 14 0 I ARTIST 0 0
15 C 15 0 I ARTIST 0 0
16 C 16 0 I ARTIST 0 0
17 C 17 3 I ARTIST 0 0
18 C 18 4 I ARTIST 0 0
19 C 19 0 I INVENTOR 1 0
20 C 20 0 I INVENTOR 2 0
21 C 21 0 I INVENTOR 3 0
22 C 22 0 I INVENTOR 4 0
23 C 23 4 I INVENTOR 5 0
24 C 24 4 I INVENTOR 6 0
25 C 25 4 I INVENTOR 7 0
26 C 26 5 I SHAMAN 2 0
27 C 27 0 I SHAMAN 2 0
28 C 28 0 I SHAMAN 1 0
29 C 29 4 I SHAMAN 1 0
30 C 30 0 II HUNTER 0 0
31 C 31 0 II HUNTER 0 0
32 C 32 3 II HUNTER 1 0
33 C 33 0 II HUNTER 1 0
34 C 34 4 II HUNTER 1 0
35 C 35 5 II HUNTER 0 0
36 C 36 0 II BUILDER 1 4
37 C 37 0 II BUILDER 2 1
38 C 38 3 II BUILDER 1 2
39 C 39 0 II BUILDER 2 3
40 C 40 0 II GATHERER 3 0
41 C 41 3 II GATHERER 3 0
42 C 42 4 II GATHERER 3 0
43 C 43 5 II GATHERER 3 0
44 C 44 3 II ARTIST 0 0
45 C 45 0 II ARTIST 0 0
46 C 46 0 II ARTIST 0 0
47 C 47 0 II ARTIST 0 0
48 C 48 0 II INVENTOR 8 0
49 C 49 4 II INVENTOR 9 0
50 C 50 0 II INVENTOR 5 0
51 C 51 0 II INVENTOR 6 0
52 C 52 0 II INVENTOR 7 0
53 C 53 0 II INVENTOR 1 0
54 C 54 0 II SHAMAN 2 0
55 C 55 0 II SHAMAN 2 0
56 C 56 5 II SHAMAN 1 0
57 C 57 5 II SHAMAN 2 0
58 C 58 5 III HUNTER 1 0
59 C 59 0 III HUNTER 0 0
60 C 60 0 III HUNTER 0 0
61 C 61 0 III HUNTER 1 0
62 C 62 0 III BUILDER 1 5
63 C 63 0 III BUILDER 2 3
64 C 64 5 III BUILDER 1 4
65 C 65 0 III BUILDER 2 2
66 C 66 5 III GATHERER 3 0
67 C 67 4 III GATHERER 3 0
68 C 68 0 III GATHERER 3 0
69 C 69 5 III ARTIST 0 0
70 C 70 0 III ARTIST 0 0
71 C 71 0 III ARTIST 0 0
72 C 72 0 III ARTIST 0 0
73 C 73 4 III INVENTOR 10 0
74 C 74 3 III INVENTOR 2 0
75 C 75 3 III INVENTOR 3 0
76 C 76 0 III INVENTOR 8 0
77 C 77 0 III INVENTOR 9 0
78 C 78 0 III INVENTOR 10 0
79 C 79 0 III INVENTOR 4 0
80 C 80 3 III SHAMAN 2 0
81 C 81 0 III SHAMAN 3 0
82 C 82 0 III SHAMAN 2 0
83 C 83 0 III SHAMAN 3 0
84 C 84 4 III SHAMAN 2 0
85 E 85 0 I HUNT 1 1
86 E 86 0 I SUSTAINMENT 1 1
87 E 87 0 I SHAMANIC_RITUAL 5 3
88 E 88 0 I CAVE_PAINTINGS 2 1
89 E 89 0 II HUNT 1 2
90 E 90 0 II SUSTAINMENT 1 2
91 E 91 0 II SHAMANIC_RITUAL 10 5
92 E 92 0 II CAVE_PAINTINGS 2 2
93 E 93 0 III HUNT 1 3
94 E 94 0 III CAVE_PAINTINGS 2 3
95 E 95 0 FINAL SUSTAINMENT 1 3
96 E 96 0 FINAL SHAMANIC_RITUAL 15 7
97 B 97 0 I 4 3 FOOD_FOR_SIX
98 B 98 0 I 4 4 SUSTAIN_DISCOUNT
99 B 99 0 I 5 3 SUSTAIN_DISCOUNT
100 B 100 0 I 5 2 SHAMAN_NO_LOSS
101 B 101 0 I 3 3 BONUS_FOOD_ENDTURN
102 B 102 0 I 3 4 FOOD_PER_INVENTORS
103 B 103 0 II 7 0 SHAMAN_DOUBLE_POINTS
104 B 104 0 II 6 4 SHAMAN_BONUS
105 B 105 0 II 7 4 SUSTAIN_DISCOUNT
106 B 106 0 II 7 2 HUNT_BONUS
107 B 107 0 II 6 4 ENDGAME_BUILDER_BONUS
108 B 108 0 II 5 6 PAINTING_FOOD_BONUS
109 B 109 0 II 5 6 ENDGAME_FOR_SIX
110 B 110 0 III 8 8 ENDGAME_BONUS_CHARACTER
111 B 111 0 III 7 6 ENDGAME_BONUS_CHARACTER
112 B 112 0 III 7 4 ENDGAME_BONUS_CHARACTER
113 B 113 0 III 6 3 ENDGAME_BONUS_CHARACTER
114 B 114 0 III 7 4 ENDGAME_BONUS_CHARACTER
115 B 115 0 III 6 6 ENDGAME_BONUS_CHARACTER
116 B 116 0 III 9 3 EXTRA_DRAW
117 B 117 0 III 10 0 ENDGAME_BONUS_POINTS

View File

@@ -108,6 +108,64 @@ class GameTest {
}
@Test
void getPendingActions() {
void getTestActions() {
System.out.println(game.getPlayers());
System.out.println(game.getGameBoard().getTurnTile());
Player yellow = game.getGameBoard().getTurnTile().getPositions()[0];
Player blue = game.getGameBoard().getTurnTile().getPositions()[1];
Player red = game.getGameBoard().getTurnTile().getPositions()[2];
System.out.println(yellow);
System.out.println(blue);
System.out.println(red);
yellow.addFood(8);
yellow.addPrestigePoints(10);
blue.addFood(7);
blue.addPrestigePoints(10);
red.addFood(7);
red.addPrestigePoints(10);
System.out.println(yellow);
System.out.println(blue);
System.out.println(red);
int y=0;
//for(Card nn: game.getGameBoard().getCardDeck().getTribeDeck()){
// System.out.println((y++) + " " + nn);
//}
System.out.println(game.getGameBoard().getCardDeck().getTribeDeck().size());
System.out.println(game.getGameBoard().getTopRow().size());
game.getGameBoard().getTopRow().add(game.getGameBoard().getCardDeck().drawTestTribe(32));
game.getGameBoard().getTopRow().add(game.getGameBoard().getCardDeck().drawTestTribe(33));
//game.getGameBoard().getTopRow().add(game.getGameBoard().getCardDeck().drawTestTribe(35));
System.out.println("top \n" +game.getGameBoard().getTopRow());
System.out.println("bottom \n" +game.getGameBoard().getBottomRow());
//game.getGameBoard().getTopRow()
game.placeTotem(yellow,game.getGameBoard().getOfferingIdxFromLetter('B'));
game.placeTotem(blue,game.getGameBoard().getOfferingIdxFromLetter('C'));
game.placeTotem(red,game.getGameBoard().getOfferingIdxFromLetter('E'));
//game.getGameBoard().placeTotem(yellow,game.getGameBoard().getOfferingTiles().get( game.getGameBoard().getOfferingIdxFromLetter('B')), game.getGameBoard().getTurnTile());
//game.getGameBoard().placeTotem(blue,game.getGameBoard().getOfferingTiles().get( game.getGameBoard().getOfferingIdxFromLetter('C')), game.getGameBoard().getTurnTile());
// game.getGameBoard().placeTotem(red,game.getGameBoard().getOfferingTiles().get( game.getGameBoard().getOfferingIdxFromLetter('E')), game.getGameBoard().getTurnTile());
//game.resolveCardAction(red, true, 32);
System.out.println(game.getGameBoard().getTurnTile());
System.out.println(game.getGameBoard().getOfferingTiles());
System.out.println(game.getCurrentPlayer());
game.resolveCardAction(yellow, false, 3);
game.resolveCardAction(blue, true, 32);
game.resolveCardAction(red, true, 33);
game.resolveCardAction(red, false, 4);
//game.resolveCardAction(curr, true, 32) ;
System.out.println(game.getState());
}
}

View File

@@ -109,7 +109,7 @@ class CardDeckTest {
assertEquals(Era.I, cardDeck.drawTribe(1).getFirst().getEra());
assertEquals(Era.FINAL, cardDeck.drawTribe(100).getLast().getEra());
// assertEquals(Era.I, cardDeck.drawBuilding(1).getFirst().getEra());
// assertEquals(Era.III, cardDeck.drawBuilding(100).getLast().getEra());
// assertEquals(Era.I, cardDeck.drawBuilding(1).getFirst().getEra());
// assertEquals(Era.III, cardDeck.drawBuilding(100).getLast().getEra());
}
}