package net.fe.unit;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import net.fe.fightStage.*;
public class Class implements Serializable {
private static final long serialVersionUID = 9144407404798873761L;
public final int crit;
public final CombatTrigger masterSkill;
public final List<Weapon.Type> usableWeapon;
public final String name;
public final String description;
private Class(String name, String desc, int c, CombatTrigger m, Weapon.Type... types){
crit = c;
masterSkill = m;
usableWeapon = Arrays.asList(types);
this.name = name;
description = desc;
}
public static Class createClass(String name){
//Lords
if(name.equals("Roy"))
return new Class("Lord",
"A noble youth who commands armies.",
0, new Aether(), Weapon.Type.SWORD);
if(name.equals("Eliwood"))
return new Class("Lord",
"A courageous royal who commands armies.",
0, new Sol(false), Weapon.Type.SWORD, Weapon.Type.LANCE);
if(name.equals("Lyn"))
return new Class("Lord",
"A serene youth who commands armies.",
0, new Astra(), Weapon.Type.SWORD, Weapon.Type.BOW);
if(name.equals("Hector"))
return new Class("Lord",
"A mighty noble who commands armies.",
0, new Luna(false), Weapon.Type.AXE, Weapon.Type.SWORD);
if(name.equals("Eirika"))
return new Class("Lord",
"A brave princess who commands armies.",
0, new Luna(false), Weapon.Type.SWORD);
if(name.equals("Ephraim"))
return new Class("Lord",
"A skilled prince who commands armies.",
0, new Sol(false), Weapon.Type.LANCE);
if(name.equals("Marth"))
return new Class("Lord",
"A legendary prince who commands armies.",
0, new Aether(), Weapon.Type.SWORD);
if(name.equals("Ike"))
return new Class("Lord",
"A radiant hero who commands armies.",
0, new Aether(), Weapon.Type.SWORD);
//Other
if(name.equals("Sniper"))
return new Class("Sniper",
"An expert archer who has mastered the bow.",
10, new Deadeye(), Weapon.Type.BOW);
if(name.equals("Hero"))
return new Class("Hero",
"Battle-hardened warriors who possess exceptional skill.",
0, new Luna(false), Weapon.Type.SWORD, Weapon.Type.AXE);
if(name.equals("Berserker"))
return new Class("Berserker",
"A master pirate who deals devastating attacks.",
10, new Colossus(), Weapon.Type.AXE);
if(name.equals("Warrior"))
return new Class("Warrior",
"An experienced fighter whose might is second to none.",
0, new Colossus(), Weapon.Type.AXE, Weapon.Type.BOW);
if(name.equals("Assassin"))
return new Class("Assassin",
"A deadly killer who lives in the shadows.",
10, new Lethality(), Weapon.Type.SWORD);
if(name.equals("Paladin"))
return new Class("Paladin",
"An experienced and dignified knight, possessing high mobility.",
0, new Sol(false), Weapon.Type.LANCE, Weapon.Type.SWORD);
if(name.equals("Sage"))
return new Class("Sage",
"A powerful magic user who wields mighty tomes.",
0, new Sol(true), Weapon.Type.ANIMA, Weapon.Type.LIGHT, Weapon.Type.STAFF);
if(name.equals("General"))
return new Class("General",
"Armoured knights who possess overpowering strength and defense.",
0, new Pavise(), Weapon.Type.AXE, Weapon.Type.LANCE);
if(name.equals("Valkyrie"))
return new Class("Valkyrie",
"A cleric who rides a horse into combat.",
0, new Miracle(), Weapon.Type.STAFF, Weapon.Type.LIGHT);
if(name.equals("Swordmaster"))
return new Class("Swordmaster",
"A seasoned myrmidon who has reached the pinnacle of swordsmanship.",
20, new Astra(), Weapon.Type.SWORD);
if(name.equals("Sorcerer"))
return new Class("Sorcerer",
"A sinister warlock who wields potent dark magic.",
0, new Luna(true), Weapon.Type.DARK, Weapon.Type.ANIMA);
if(name.equals("Falconknight"))
return new Class("Falconknight",
"Knights who control pegasi with great mastery.",
0, new Crisis(), Weapon.Type.LANCE, Weapon.Type.SWORD);
return null;
}
}