// GameModel.cs
public static void ShuffleDeck(int side) {
// Logic for shuffling the deck for the specified player side
Random.State state = Random.state; // Save the current random state
Random.InitState(num); // Initialize random state with a seed
int index = Random.Range(0, model.players[side].deck.Count); // Get a random index
OnDeckShuffled(side); // Call deck shuffled event
gameData.shuffledDeckThisTurn[side]++; // Increment the shuffle counter
Random.state = state; // Restore the previous random state
Debug.Log("Shuffled deck for side " + side + ", seed " + num); // Log shuffle info
}
public static void ShuffleDeck() {
ShuffleDeck(CurSide()); // Calls the shuffle method for the current player side
}
// Additional functions related to deck manipulation
public static void RemoveDeck(ShadowEraCard card) {
// Logic for removing a card from the deck
}
// GameController.cs
GameModel.ShuffleDeck(); // Called to trigger the shuffle process
GameModel.GameStateActivate(GameState.GameStateType.mulliganDraw); // Changes the game state for a mulligan
// Gameplay.cs
GameModel.ShuffleDeck(1); // Executes the shuffle for player 1
// GameState.cs
case GameStateType.draw: {
// Logic for handling the draw state after a shuffle
}
case GameStateType.mulliganDraw: {
// Logic for handling the mulligan draw state, ensuring shuffle occurs correctly
}