package ring.mobiles; import java.io.Serializable; import java.util.List; import java.util.ArrayList; import ring.mobiles.mobclass.MobileClass; public class Race implements Serializable { public static final long serialVersionUID = 1; private int strMod; private int dexMod; private int conMod; private int intMod; private int wisMod; private int chaMod; //Text to display when showing the race of a mobile. private String raceName; //Default Body of the race. private Body raceBody; //Classes this race can play. private List<MobileClass> classesAllowed = new ArrayList<MobileClass>(); //Miscellaneous flags. //Is this race playable by PCs? private boolean isPCRace; //This will create a default race with relatives of all 0. public Race() { } //getName method. //Returns the full name of the race. public String getName() { return raceName; } public void setName(String name) { raceName = name; } //getShortName method. //Returns the first three letters of the race name. public String getShortName() { int startPos = raceName.lastIndexOf("]", raceName.length() - 10) + 1; return raceName.substring(startPos, startPos + 3); } //getBody method. //Returns the Body object of this Race object. public Body getBody() { return raceBody; } public void setBody(Body body) { raceBody = body; } //getClassesAllowed method. //Returns the available classes this race can have. public List<MobileClass> getClassesAllowed() { return classesAllowed; } //isPCRace method. //Returns if the race is available to players or not. public boolean isPCRace() { return isPCRace; } public void setPCRace(boolean val) { isPCRace = val; } public int getStrModifier() { return strMod; } public int getDexModifier() { return dexMod; } public int getConModifier() { return conMod; } public int getIntModifier() { return intMod; } public int getWisModifier() { return wisMod; } public int getChaModifier() { return chaMod; } public void setStrModifier(int mod) { strMod = mod; } public void setDexModifier(int mod) { dexMod = mod; } public void setConModifier(int mod) { conMod = mod; } public void setIntModifier(int mod) { intMod = mod; } public void setWisModifier(int mod) { wisMod = mod; } public void setChaModifier(int mod) { chaMod = mod; } public void setClassesAllowed(List<MobileClass> classesAllowed) { this.classesAllowed = classesAllowed; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + chaMod; result = prime * result + ((classesAllowed == null) ? 0 : classesAllowed.hashCode()); result = prime * result + conMod; result = prime * result + dexMod; result = prime * result + intMod; result = prime * result + (isPCRace ? 1231 : 1237); result = prime * result + ((raceBody == null) ? 0 : raceBody.hashCode()); result = prime * result + ((raceName == null) ? 0 : raceName.hashCode()); result = prime * result + strMod; result = prime * result + wisMod; return result; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Race other = (Race) obj; if (chaMod != other.chaMod) return false; if (classesAllowed == null) { if (other.classesAllowed != null) return false; } else if (!classesAllowed.equals(other.classesAllowed)) return false; if (conMod != other.conMod) return false; if (dexMod != other.dexMod) return false; if (intMod != other.intMod) return false; if (isPCRace != other.isPCRace) return false; if (raceBody == null) { if (other.raceBody != null) return false; } else if (!raceBody.equals(other.raceBody)) return false; if (raceName == null) { if (other.raceName != null) return false; } else if (!raceName.equals(other.raceName)) return false; if (strMod != other.strMod) return false; if (wisMod != other.wisMod) return false; return true; } }