/* * Character.java * * Created on July 13, 2006, 2:01 PM */ package eug.specific.ck; import eug.shared.GenericObject; import eug.shared.ObjectVariable; import java.util.ArrayList; import java.util.List; /** * * @author Michael Myers */ public class Character extends CKSpecificObject { /** Creates a new instance of Character */ public Character(GenericObject go, CKScenario s) { super(go, s); } public String getName() { return go.getString("name"); } public String getTag() { return go.getString("tag"); } public String getReligion() { return go.getString("religion"); } public String getCulture() { return go.getString("culture"); } public double getAttribute(String attr) { return go.getChild("attributes").getDouble(attr); } public double getMartial() { return getAttribute("martial"); } public double getDiplomacy() { return getAttribute("diplomacy"); } public double getIntrigue() { return getAttribute("intrigue"); } public double getStewardship() { return getAttribute("stewardship"); } public double getHealth() { return getAttribute("health"); } public double getFertility() { return getAttribute("fertility"); } public List<String> getTraits() { final GenericObject traits = go.getChild("traits"); final List<String> ret = new ArrayList<String>(traits.size()); for (ObjectVariable var : traits.values) ret.add(var.varname); return ret; } public boolean hasTrait(String trait) { return go.getChild("traits").contains(trait); } /** * Note: This method does not check whether a contradictory trait * is already present. */ public void addTrait(String type) { go.getChild("traits").setString(type, "yes", false); } public boolean isDead() { return go.contains("deathdate"); } }