/**
 * The VideoGame class represents a video game object. 
 * Information about the video is stored and can be retrieved.
 * 
 *@author Michael Kölling and David J. Barnes
 *@updates and changes by Michael Rivers
 *@version April 12th, 2006
 */
public class VideoGame extends Item
{
    private int numberOfPlayers;
    private String platform;

    /**
     * Default Constructor
     */
    public VideoGame()
    {
        numberOfPlayers = 0;
        platform = "unknown platform";
    }
    
    /**
     * Initialize the video game and pass parameters to
     * the parent class
     */
    public VideoGame(String theTitle, int players, 
                String thePlatform, int time)
    {
        super(theTitle, time);
        numberOfPlayers = players;
        platform = thePlatform;    
    }
    
    /**
     * This constructor method also passes the "got it" parameter
     */
    public VideoGame(String theTitle, int players, 
                String thePlatform, int time, boolean gotIt)
    {
        super(theTitle, time, gotIt);
        numberOfPlayers = players;
        platform = thePlatform;
        
    }
    
    /**
     * This one passes "got it" and comment to its parent class
     */
    public VideoGame(String theTitle, int players, String thePlatform, 
                        int time, boolean gotIt, String comment)
    {
        super(theTitle, time, gotIt, comment);
        numberOfPlayers = players;
        platform = thePlatform;   
    }
    
    /**
     * These next three do not require a time parameter
     * (for video games where time is not relevant)
     */
    public VideoGame(String theTitle, int players, String thePlatform)
    {
        super(theTitle);
        numberOfPlayers = players;
        platform = thePlatform;
    }

    /**
     * This one does not require a time parameter
     * and has a "got it" parameter
     */
    public VideoGame(String theTitle, int players, String thePlatform,
                        boolean gotIt)
    {
        super(theTitle, gotIt);
        numberOfPlayers = players;
        platform = thePlatform;
    }
    
    /**
     * This one does not require a time parameter
     * and has "got it" and comment parameters
     */
    public VideoGame(String theTitle, int players, String thePlatform,
                        boolean gotIt, String comment)
    {
        super(theTitle, gotIt, comment);
        numberOfPlayers = players;
        platform = thePlatform;
    }
    
    /**
     * Accessor Method for number of players
     */
    public int getPlayers()
    {
        return numberOfPlayers;
    }
    
    /**
     * Mutator Method for number of players
     */
    public void setPlayers(int players)
    {
        numberOfPlayers = players;
    }
    
    /**
     * Accessor Method for platform
     */
    public String getPlatform()
    {
        return platform;
    }
    
    /**
     * Mutator Method for platform
     */
    public void setPlatform(String platform)
    {
        this.platform = platform;
    }
    
    /**
     * Call parent's print method and prints additional details
     * about the video game
     */
    public void print()
    {
        System.out.print("Video Game: ");
        super.print();
        System.out.println("    " + platform);
        System.out.println("    " + numberOfPlayers + " players");

    }
}
