Add: endGame Partial, PickOptionalTribeCard, PickOptionalBuildingCard, NoOptionalCard, Fixed Player.java

This commit is contained in:
GabrieleRadice
2026-03-27 17:51:40 +01:00
parent 7844f093b3
commit d6c4c0bad3
2 changed files with 48 additions and 10 deletions
@@ -1,5 +1,6 @@
package it.polimi.ingsw.gc14.Model; package it.polimi.ingsw.gc14.Model;
import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCard; import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character;
@@ -207,13 +208,55 @@ public class Game {
//endregion //endregion
//region Optional Card Methods //region Optional Card Methods
// TODO fare mappa per contare più volte lo stesso player
public boolean PickOptionalTribeCard(Player player,TribeCard tribeCard) { public boolean PickOptionalTribeCard(Player player,TribeCard tribeCard) {
if(currentState.getGameStage() != GameStages.OPTIONAL_CARD_EFFECT){
return false;
}
if(!player.equals(currentState.getCurrentPlayer())){
return false;
}
if(!board.containsUpperTribeCard(tribeCard)){
return false;
}
if(tribeCard.IsEventCard()){
return false;
}
Character tempCard = (Character) tribeCard;
tempCard.insert(player);
board.removeUpperTribeCard(tempCard);
nextPlayerSetup();
return true; return true;
} }
public boolean PickOptionalBuildingCard(Player player, BuildingCard buildingCard) { public boolean PickOptionalBuildingCard(Player player, BuildingCard buildingCard) {
if(currentState.getGameStage() != GameStages.OPTIONAL_CARD_EFFECT){
return false;
}
if(!player.equals(currentState.getCurrentPlayer())){
return false;
}
if(!board.containsUpperBuildingCard(buildingCard)){
return false;
}
if(buildingCard.buy(player)) {
board.removeUpperBuildingCard(buildingCard);
}
else {
return false;
}
nextPlayerSetup();
return true; return true;
} }
public boolean NoOptionalCard(Player player) { public boolean NoOptionalCard(Player player) {
if(currentState.getGameStage() != GameStages.OPTIONAL_CARD_EFFECT){
return false;
}
if(!player.equals(currentState.getCurrentPlayer())){
return false;
}
return true; return true;
} }
//endregion //endregion
@@ -305,10 +348,14 @@ public class Game {
} }
private void endGame() { private void endGame() {
//DO SOMETHING THEN //DO SOMETHING THEN
for(Player p : playersList){
List<BuildingCard> cards = p.buildingCards.stream().
filter(x -> x.getEffectType() == EffectType.FINAL).toList();
}
currentState.GameStageUpdate(GameStages.ENDED); currentState.GameStageUpdate(GameStages.ENDED);
} }
// TODO endGame, optional cards,
@@ -104,14 +104,5 @@ public class Player {
// End constructors // End constructors
// Functions // Functions
// TODO
public void Play(Slot slot){
}
// TODO
public void SlotChoice(){
}
// End functions // End functions
} }