/*
 * ljpapi - Libre Java Pathfinding API
 * Copyright (C) 2015 Delwink, LLC
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, version 3 only.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.delwink.ljp;

import java.util.ArrayList;

/**
 * A character in the RPG.
 * @author David McMackins II
 */
public class Character {
    private Alignment alignment;
    private ArrayList<CombatClass> classes;
    private ArrayList<String> languages;
    private ExperienceRate experienceRate;
    private Gender gender;
    private int age, height, weight;
    private int cha, con, currentHp, dex, intel, maxHp, str, wis;
    private Occupation occupation;
    private Race race;
    private Size size;
    private String deity, name, player;

    public Alignment getAlignment() {
        return alignment;
    }

    public void setAlignment(Alignment alignment) {
        this.alignment = alignment;
    }

    public ArrayList<CombatClass> getClasses() {
        return classes;
    }

    public void setClasses(ArrayList<CombatClass> classes) {
        this.classes = classes;
    }

    public ArrayList<String> getLanguages() {
        return languages;
    }

    public void setLanguages(ArrayList<String> languages) {
        this.languages = languages;
    }

    public ExperienceRate getExperienceRate() {
        return experienceRate;
    }

    public void setExperienceRate(ExperienceRate experienceRate) {
        this.experienceRate = experienceRate;
    }

    public Gender getGender() {
        return gender;
    }

    public void setGender(Gender gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public int getCha() {
        return cha;
    }

    public void setCha(int cha) {
        this.cha = cha;
    }

    public int getCon() {
        return con;
    }

    public void setCon(int con) {
        this.con = con;
    }

    public int getCurrentHp() {
        return currentHp;
    }

    public void setCurrentHp(int currentHp) {
        this.currentHp = currentHp;
    }

    public int getDex() {
        return dex;
    }

    public void setDex(int dex) {
        this.dex = dex;
    }

    public int getIntel() {
        return intel;
    }

    public void setIntel(int intel) {
        this.intel = intel;
    }

    public int getMaxHp() {
        return maxHp;
    }

    public void setMaxHp(int maxHp) {
        this.maxHp = maxHp;
    }

    public int getStr() {
        return str;
    }

    public void setStr(int str) {
        this.str = str;
    }

    public int getWis() {
        return wis;
    }

    public void setWis(int wis) {
        this.wis = wis;
    }

    public Occupation getOccupation() {
        return occupation;
    }

    public void setOccupation(Occupation occupation) {
        this.occupation = occupation;
    }

    public Race getRace() {
        return race;
    }

    public void setRace(Race race) {
        this.race = race;
    }

    public Size getSize() {
        return size;
    }

    public void setSize(Size size) {
        this.size = size;
    }

    public String getDeity() {
        return deity;
    }

    public void setDeity(String deity) {
        this.deity = deity;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPlayer() {
        return player;
    }

    public void setPlayer(String player) {
        this.player = player;
    }
}

@@ -1394,32 +1394,36 @@
 lignment;%0A    %7D%0A
+    
 %0A    public Arra
@@ -1418,26 +1418,30 @@
  public 
-ArrayList%3C
+void addClass(
 CombatCl
@@ -1447,21 +1447,20 @@
 lass
-%3E ge
+ comba
 tClass
-es(
 ) %7B%0A
@@ -1471,30 +1471,40 @@
     
-return 
 classes
+.add(combatClass)
 ;%0A    %7D%0A
 %0A   
@@ -1491,32 +1491,36 @@
 atClass);%0A    %7D%0A
+    
 %0A    public void
@@ -1524,29 +1524,106 @@
 oid 
-setClasses(ArrayList%3C
+removeClass(CombatClass combatClass) %7B%0A        classes.remove(combatClass);%0A    %7D%0A    %0A    public 
 Comb
@@ -1629,25 +1629,30 @@
 batClass
-%3E c
+%5B%5D getC
 lasses
+(
 ) %7B%0A    
@@ -1659,38 +1659,100 @@
     
-this.classes = classes
+CombatClass%5B%5D c = classes.toArray(new CombatClass%5Bclasses.size()%5D);%0A        return c
 ;%0A    %7D%0A
 %0A   
@@ -1739,32 +1739,36 @@
 return c;%0A    %7D%0A
+    
 %0A    public Arra
@@ -1767,39 +1767,40 @@
 lic 
-ArrayList%3CString%3E getL
+void addLanguage(String l
 anguage
-s(
 ) %7B%0A
@@ -1811,23 +1811,30 @@
     
-return 
+languages.add(
 language
 s;%0A 
@@ -1825,33 +1825,33 @@
 add(language
-s
+)
 ;%0A    %7D%0A
 %0A    public 
@@ -1830,32 +1830,36 @@
 anguage);%0A    %7D%0A
+    
 %0A    public void
@@ -1863,19 +1863,22 @@
 oid 
-set
+remove
 Language
 s(Ar
@@ -1877,37 +1877,103 @@
 uage
-s(ArrayList%3CString%3E l
+(String language) %7B%0A        languages.remove(language);%0A    %7D%0A%0A    public String%5B%5D getL
 anguages
 ) %7B%0A
@@ -1968,16 +1968,17 @@
 anguages
+(
 ) %7B%0A    
@@ -1985,34 +1985,86 @@
     
-this.languages = languages
+String%5B%5D l = languages.toArray(new String%5Blanguages.size()%5D);%0A        return l
 ;%0A  

Change getter/setter style for lists