package pathgame.gameplay;

public class PlayerAbilities
{
    private final String name;
    private final int fasterGrass;
    private final int fasterForest;
    private final int fasterShallowWater;
    private final int fasterDeepWater;
    private final int fasterHill;
    private final int fasterMountain;
    private final int fasterSwamp;
    
    public PlayerAbilities(String name, int fasterGrass, int fasterForest, int fasterShallowWater, 
            int fasterDeepWater, int fasterHill, int fasterMountain, int fasterSwamp)
    {
        this.name = name;
        this.fasterGrass = fasterGrass;
        this.fasterForest = fasterForest;
        this.fasterShallowWater = fasterShallowWater;
        this.fasterDeepWater = fasterDeepWater;
        this.fasterHill = fasterHill;
        this.fasterMountain = fasterMountain;
        this.fasterSwamp = fasterSwamp;
    }

    public final static PlayerAbilities NORMAL = new PlayerAbilities("Normal", 0, 0, 0, 0, 0, 0, 0);
    public final static PlayerAbilities HIKER = new PlayerAbilities("Hiker", 0, 0, 0, 0, 1, 0, 0);
    public final static PlayerAbilities CLIMBER = new PlayerAbilities("Climber", 0, 0, 0, 0, 0, 1, 0);
    public final static PlayerAbilities HUNTER = new PlayerAbilities("Hunter", 0, 1, 0, 0, 0, 0, 0);
    public final static PlayerAbilities SWIMMER = new PlayerAbilities("Swimmer", 0, 0, 2, 0, 0, 0, 0);
    public final static PlayerAbilities SAILOR = new PlayerAbilities("Sailor", 0, 0, 0, 1, 0, 0, 0);
    
    public final static PlayerAbilities[] ABILITIES = new PlayerAbilities[] 
    {
        NORMAL, HIKER, CLIMBER, HUNTER, SWIMMER, SAILOR
    };

    public int getFasterGrass()
    {
        return fasterGrass;
    }

    public int getFasterForest()
    {
        return fasterForest;
    }

    public int getFasterShallowWater()
    {
        return fasterShallowWater;
    }

    public int getFasterDeepWater()
    {
        return fasterDeepWater;
    }

    public int getFasterHill()
    {
        return fasterHill;
    }

    public int getFasterMountain()
    {
        return fasterMountain;
    }

    public int getFasterSwamp()
    {
        return fasterSwamp;
    }

    public String getName()
    {
        return name;
    }
}