Add: Apply(MiniModel Added In Every Event), Added ApplyNextRound event

This commit is contained in:
rubenpirreram
2026-05-12 21:59:03 +02:00
parent aae30354c4
commit e6f54fe16d
14 changed files with 242 additions and 0 deletions
@@ -1,8 +1,14 @@
package it.polimi.ingsw.gc14.Network; package it.polimi.ingsw.gc14.Network;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.GamePackage.CurrentState;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player;
import it.polimi.ingsw.gc14.Model.Slot;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map;
/** /**
* Represents an event sent over the network * Represents an event sent over the network
@@ -21,6 +27,17 @@ public abstract class NetworkEvent implements Serializable {
/** EventType of the event */ /** EventType of the event */
protected EventType eventType; protected EventType eventType;
protected Map<Slot, Player> slotPlayerMap;
protected OrderLogicCard orderLogicCard;
protected CurrentState currentState;
protected Player player;
public void setData(Map<Slot, Player> slotPlayerMap, OrderLogicCard orderLogicCard, CurrentState currentState,Player player) {
this.slotPlayerMap = slotPlayerMap;
this.orderLogicCard = orderLogicCard;
this.currentState = currentState;
this.player = player;
}
/** /**
* @return the type of the event * @return the type of the event
*/ */
@@ -73,4 +90,7 @@ public abstract class NetworkEvent implements Serializable {
* @return true if the event could be applied; false otherwise * @return true if the event could be applied; false otherwise
*/ */
public abstract boolean apply(GameController gameController); public abstract boolean apply(GameController gameController);
//TODO
public abstract boolean apply(MiniModel model);
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -41,4 +42,16 @@ public class AddPlayer extends NetworkEvent implements Serializable {
{ {
return gameController.addPlayer(username); return gameController.addPlayer(username);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -0,0 +1,50 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.GamePackage.CurrentState;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player;
import it.polimi.ingsw.gc14.Model.Slot;
import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* NetworkEvent to draw a tribe card from the lower card list.
*/
public class ApplyNextRound extends NetworkEvent implements Serializable{
List<Player> players;
//TODO
public ApplyNextRound(Map<Slot, Player> slotPlayerMap, OrderLogicCard orderLogicCard, CurrentState currentState, List<Player> players){
super("SERVER",EventType.DISCONNECTED_PLAYER,false);
this.slotPlayerMap = slotPlayerMap;
this.orderLogicCard = orderLogicCard;
this.currentState = currentState;
this.players = players;
}
/**
* @param gameController the Game Controller on which to apply the event
* @return true if the player could draw the card, false otherwise
*/
@Override
public boolean apply(GameController gameController){
return false;
}
public boolean apply(MiniModel miniModel)
{
miniModel.setSlotPlayerMap(slotPlayerMap);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setPlayers(players);
miniModel.board.nextRound();
return true;
}
}
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
@@ -29,5 +30,17 @@ public class DisconnectedPlayer extends NetworkEvent implements Serializable{
return gameController.DisconnectedPlayer(username); return gameController.DisconnectedPlayer(username);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -34,4 +35,20 @@ public class DrawLowerBuildingCard extends NetworkEvent implements Serializable
return gameController.drawLowerBuildingCard(username, pos); return gameController.drawLowerBuildingCard(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.board.removeLowerBuildingCard(miniModel.board.lowerListBuilding.get(pos));
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -34,5 +35,19 @@ public class DrawLowerTribeCard extends NetworkEvent implements Serializable{
public boolean apply(GameController gameController){ public boolean apply(GameController gameController){
return gameController.drawLowerTribeCard(username, pos); return gameController.drawLowerTribeCard(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.board.removeLowerTribeCard(miniModel.board.lowerListTribe.get(pos));
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -35,4 +36,18 @@ public class DrawUpperBuildingCard extends NetworkEvent implements Serializable
return gameController.drawUpperBuildingCard(username, pos); return gameController.drawUpperBuildingCard(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.board.removeUpperTribeCard(miniModel.board.upperListTribe.get(pos));
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -34,6 +35,19 @@ public class DrawUpperTribeCard extends NetworkEvent implements Serializable{
public boolean apply(GameController gameController){ public boolean apply(GameController gameController){
return gameController.drawUpperTribeCard(username, pos); return gameController.drawUpperTribeCard(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.board.removeUpperTribeCard(miniModel.board.upperListTribe.get(pos));
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -29,4 +30,16 @@ public class NoOptionalCard extends NetworkEvent implements Serializable{
public boolean apply(GameController gameController){ public boolean apply(GameController gameController){
return gameController.noOptionalCard(username); return gameController.noOptionalCard(username);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -34,4 +35,18 @@ public class PickOptionalBuildingCard extends NetworkEvent implements Serializa
public boolean apply(GameController gameController){ public boolean apply(GameController gameController){
return gameController.pickOptionalBuildingCard(username, pos); return gameController.pickOptionalBuildingCard(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.board.removeUpperBuildingCard(miniModel.board.upperListBuilding.get(pos));
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -35,4 +36,19 @@ public class PickOptionalTribeCard extends NetworkEvent implements Serializable
return gameController.pickOptionalTribeCard(username, pos); return gameController.pickOptionalTribeCard(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.board.removeUpperTribeCard(miniModel.board.upperListTribe.get(pos));
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
@@ -27,4 +28,16 @@ public class ReconnectPlayer extends NetworkEvent implements Serializable{
return gameController.ReconnectPlayer(username); return gameController.ReconnectPlayer(username);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
@@ -29,4 +30,17 @@ public class SkipNoDrawable extends NetworkEvent implements Serializable{
return gameController.SkipNoDrawable(username); return gameController.SkipNoDrawable(username);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }
@@ -1,6 +1,7 @@
package it.polimi.ingsw.gc14.Network.NetworkEvents; package it.polimi.ingsw.gc14.Network.NetworkEvents;
import it.polimi.ingsw.gc14.Controller.GameController; import it.polimi.ingsw.gc14.Controller.GameController;
import it.polimi.ingsw.gc14.Model.MiniModel;
import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.Network.NetworkEvent;
import it.polimi.ingsw.gc14.View.IView; import it.polimi.ingsw.gc14.View.IView;
@@ -35,4 +36,17 @@ public class SlotChoice extends NetworkEvent implements Serializable {
return gameController.slotChoice(username, pos); return gameController.slotChoice(username, pos);
} }
//TODO
@Override
public boolean apply(MiniModel miniModel){
if(isError)
return false;
miniModel.setPlayer(player);
miniModel.setOrderLogicCard(orderLogicCard);
miniModel.setCurrentState(currentState);
miniModel.setSlotPlayerMap(slotPlayerMap);
return true;
}
} }