public boolean phasesCheck() {
        if (mapParams.containsKey("TriggerPhases")) {
            String phases = mapParams.get("TriggerPhases");

            if (phases.contains("->")) {
                // If phases lists a Range, split and Build Activate String
                // Combat_Begin->Combat_End (During Combat)
                // Draw-> (After Upkeep)
                // Upkeep->Combat_Begin (Before Declare Attackers)

                String[] split = phases.split("->", 2);
                phases = AllZone.getPhase().buildActivateString(split[0], split[1]);
            }
            ArrayList<String> triggerPhases = new ArrayList<String>();
            for (String s : phases.split(",")) {
                triggerPhases.add(s);
            }
            if (!triggerPhases.contains(AllZone.getPhase().getPhase())) {
                return false;
            }
        }

        if (mapParams.containsKey("PlayerTurn"))
            if (!AllZone.getPhase().isPlayerTurn(hostCard.getController()))
                return false;

        if (mapParams.containsKey("OpponentTurn"))
            if (AllZone.getPhase().isPlayerTurn(hostCard.getController()))
                return false;

        return true;
    }