package ring.mobiles;
public class RaceFactory {
//determineRace method.
//This method is used in character creation to create a PC race.
public static Race determineRace(String choice) {
choice = choice.toUpperCase();
if(choice.equalsIgnoreCase("A")) return createHuman();
else if(choice.equalsIgnoreCase("B")) return createElf();
else if(choice.equalsIgnoreCase("C")) return createDwarf();
else if(choice.equalsIgnoreCase("D")) return createHalfElf();
else if(choice.equalsIgnoreCase("E")) return createGnome();
else if(choice.equalsIgnoreCase("F")) return createAasimar();
else if(choice.equalsIgnoreCase("G")) return createDrow();
else if(choice.equalsIgnoreCase("H")) return createOgre();
else if(choice.equalsIgnoreCase("I")) return createDuergar();
else if(choice.equalsIgnoreCase("J")) return createIllithid();
else if(choice.equalsIgnoreCase("K")) return createTroll();
else if(choice.equalsIgnoreCase("L")) return createTiefling();
else return null;
}
//createHuman method.
//This returns the Human PC race.
public static Race createHuman() {
Race r = new Race();
r.setName("[B][YELLOW]Human[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createDrow method.
//This returns the Drow PC race.
public static Race createDrow() {
Race r = new Race();
r.setName("[MAGENTA]Drow[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createElf method.
//This returns the Elf PC race.
public static Race createElf() {
Race r = new Race();
r.setName("[CYAN]Moon Elf[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createOgre method.
//This returns the Ogre PC race.
public static Race createOgre() {
Race r = new Race();
r.setName("[B][BLUE]Ogre[R][WHITE]");
r.setBody(BodyFactory.createLargeHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createDwarf method.
//This returns the Dwarf PC race.
public static Race createDwarf() {
Race r = new Race();
r.setName("[B][GREEN]Dwarf[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createDuergar method.
//This returns the Duergar PC race.
public static Race createDuergar() {
Race r = new Race();
r.setName("[RED]Duergar[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createHalfElf method.
//This returns the Half-Elf PC race.
public static Race createHalfElf() {
Race r = new Race();
r.setName("[GREEN]Half-Elf[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createIllithid method.
//This method returns the Illithid PC race.
public static Race createIllithid() {
Race r = new Race();
r.setName("[B][MAGENTA]Illithid[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createGnome method.
//This method returns the Gnome PC race.
//Tiefling: Str +0, Con +0, Dex +15, Int +10, Wis +0, Agi +10, Cha -15
public static Race createGnome() {
Race r = new Race();
r.setName("[B][RED]Gnome[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createTroll method.
//This method returns the Troll PC race.
public static Race createTroll() {
Race r = new Race();
r.setName("[GREEN]Troll[R][WHITE]");
r.setBody(BodyFactory.createLargeHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createAasimar method.
//This method returns the Aasimar PC race.
public static Race createAasimar() {
Race r = new Race();
r.setName("[B][WHITE]Aasimar[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
//createTiefling method.
//This method returns the Tiefling PC race.
public static Race createTiefling() {
Race r = new Race();
r.setName("[R][YELLOW]Tiefling[R][WHITE]");
r.setBody(BodyFactory.createMediumHumanoidBody());
r.setClassesAllowed(null);
r.setPCRace(true);
return r;
}
}