public Character(String name, int level, Action[] moves, VariableStat hp,
					VariableStat mp, Stat strength, Stat defense, Stat agility,
					Stat accuracy, Stat magic, Stat luck) {
		if (level < 1) {
			throw new IllegalArgumentException("Character level too low.");
		}
		hp.restore(level);
		mp.restore(level);
		this.name = name;
		this.level = level;
		this.moves = moves;
		this.hp = hp;
		this.mp = mp;
		this.strength = strength;
		this.defense = defense;
		this.accuracy = accuracy;
		this.agility = agility;
		this.magic = magic;
		this.luck = luck;
		this.xp = Character.getRequiredXP(level);
		this.fighterId = -1;
		this.teamId = -1;
		for (int i = 0; i < moves.length; i++) {
			moves[i].setOrigin(this);
		}
	}