package eu.jonahbauer.wizard.core.states.trick;

import eu.jonahbauer.wizard.core.states.GameData;
import eu.jonahbauer.wizard.core.states.round.RoundState;

import static eu.jonahbauer.wizard.core.states.GameData.*;

public abstract class TrickState extends RoundState {
    public static GameData requirements(GameData data) {
        return data.requireEach(PLAYERS, HANDS)
                   .requireEach(PLAYERS, PREDICTIONS)
                   .require(TRUMP_SUIT, TRICK, TRICKS, CURRENT_PLAYER)
                   .keep(CLOUDED_PLAYER);
    }

    public TrickState(GameData data) {
        super(requirements(data));
    }
}
