299 lines
11 KiB
Java
299 lines
11 KiB
Java
/*
|
|
* Copyright (C) 2004-2015 L2J Server
|
|
*
|
|
* This file is part of L2J Server.
|
|
*
|
|
* L2J Server is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* L2J Server is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package com.l2jserver.gameserver.model.base;
|
|
|
|
import static com.l2jserver.gameserver.model.base.ClassLevel.FIRST;
|
|
import static com.l2jserver.gameserver.model.base.ClassLevel.FOURTH;
|
|
import static com.l2jserver.gameserver.model.base.ClassLevel.SECOND;
|
|
import static com.l2jserver.gameserver.model.base.ClassLevel.THIRD;
|
|
import static com.l2jserver.gameserver.model.base.ClassType.Fighter;
|
|
import static com.l2jserver.gameserver.model.base.ClassType.Mystic;
|
|
import static com.l2jserver.gameserver.model.base.ClassType.Priest;
|
|
|
|
import java.util.EnumSet;
|
|
|
|
import com.l2jserver.gameserver.enums.Race;
|
|
|
|
/**
|
|
* @author luisantonioa
|
|
*/
|
|
public enum PlayerClass
|
|
{
|
|
HumanFighter(Race.HUMAN, Fighter, FIRST),
|
|
Warrior(Race.HUMAN, Fighter, SECOND),
|
|
Gladiator(Race.HUMAN, Fighter, THIRD),
|
|
Warlord(Race.HUMAN, Fighter, THIRD),
|
|
HumanKnight(Race.HUMAN, Fighter, SECOND),
|
|
Paladin(Race.HUMAN, Fighter, THIRD),
|
|
DarkAvenger(Race.HUMAN, Fighter, THIRD),
|
|
Rogue(Race.HUMAN, Fighter, SECOND),
|
|
TreasureHunter(Race.HUMAN, Fighter, THIRD),
|
|
Hawkeye(Race.HUMAN, Fighter, THIRD),
|
|
HumanMystic(Race.HUMAN, Mystic, FIRST),
|
|
HumanWizard(Race.HUMAN, Mystic, SECOND),
|
|
Sorceror(Race.HUMAN, Mystic, THIRD),
|
|
Necromancer(Race.HUMAN, Mystic, THIRD),
|
|
Warlock(Race.HUMAN, Mystic, THIRD),
|
|
Cleric(Race.HUMAN, Priest, SECOND),
|
|
Bishop(Race.HUMAN, Priest, THIRD),
|
|
Prophet(Race.HUMAN, Priest, THIRD),
|
|
|
|
ElvenFighter(Race.ELF, Fighter, FIRST),
|
|
ElvenKnight(Race.ELF, Fighter, SECOND),
|
|
TempleKnight(Race.ELF, Fighter, THIRD),
|
|
Swordsinger(Race.ELF, Fighter, THIRD),
|
|
ElvenScout(Race.ELF, Fighter, SECOND),
|
|
Plainswalker(Race.ELF, Fighter, THIRD),
|
|
SilverRanger(Race.ELF, Fighter, THIRD),
|
|
ElvenMystic(Race.ELF, Mystic, FIRST),
|
|
ElvenWizard(Race.ELF, Mystic, SECOND),
|
|
Spellsinger(Race.ELF, Mystic, THIRD),
|
|
ElementalSummoner(Race.ELF, Mystic, THIRD),
|
|
ElvenOracle(Race.ELF, Priest, SECOND),
|
|
ElvenElder(Race.ELF, Priest, THIRD),
|
|
|
|
DarkElvenFighter(Race.DARK_ELF, Fighter, FIRST),
|
|
PalusKnight(Race.DARK_ELF, Fighter, SECOND),
|
|
ShillienKnight(Race.DARK_ELF, Fighter, THIRD),
|
|
Bladedancer(Race.DARK_ELF, Fighter, THIRD),
|
|
Assassin(Race.DARK_ELF, Fighter, SECOND),
|
|
AbyssWalker(Race.DARK_ELF, Fighter, THIRD),
|
|
PhantomRanger(Race.DARK_ELF, Fighter, THIRD),
|
|
DarkElvenMystic(Race.DARK_ELF, Mystic, FIRST),
|
|
DarkElvenWizard(Race.DARK_ELF, Mystic, SECOND),
|
|
Spellhowler(Race.DARK_ELF, Mystic, THIRD),
|
|
PhantomSummoner(Race.DARK_ELF, Mystic, THIRD),
|
|
ShillienOracle(Race.DARK_ELF, Priest, SECOND),
|
|
ShillienElder(Race.DARK_ELF, Priest, THIRD),
|
|
|
|
OrcFighter(Race.ORC, Fighter, FIRST),
|
|
OrcRaider(Race.ORC, Fighter, SECOND),
|
|
Destroyer(Race.ORC, Fighter, THIRD),
|
|
OrcMonk(Race.ORC, Fighter, SECOND),
|
|
Tyrant(Race.ORC, Fighter, THIRD),
|
|
OrcMystic(Race.ORC, Mystic, FIRST),
|
|
OrcShaman(Race.ORC, Mystic, SECOND),
|
|
Overlord(Race.ORC, Mystic, THIRD),
|
|
Warcryer(Race.ORC, Mystic, THIRD),
|
|
|
|
DwarvenFighter(Race.DWARF, Fighter, FIRST),
|
|
DwarvenScavenger(Race.DWARF, Fighter, SECOND),
|
|
BountyHunter(Race.DWARF, Fighter, THIRD),
|
|
DwarvenArtisan(Race.DWARF, Fighter, SECOND),
|
|
Warsmith(Race.DWARF, Fighter, THIRD),
|
|
|
|
dummyEntry1(null, null, null),
|
|
dummyEntry2(null, null, null),
|
|
dummyEntry3(null, null, null),
|
|
dummyEntry4(null, null, null),
|
|
dummyEntry5(null, null, null),
|
|
dummyEntry6(null, null, null),
|
|
dummyEntry7(null, null, null),
|
|
dummyEntry8(null, null, null),
|
|
dummyEntry9(null, null, null),
|
|
dummyEntry10(null, null, null),
|
|
dummyEntry11(null, null, null),
|
|
dummyEntry12(null, null, null),
|
|
dummyEntry13(null, null, null),
|
|
dummyEntry14(null, null, null),
|
|
dummyEntry15(null, null, null),
|
|
dummyEntry16(null, null, null),
|
|
dummyEntry17(null, null, null),
|
|
dummyEntry18(null, null, null),
|
|
dummyEntry19(null, null, null),
|
|
dummyEntry20(null, null, null),
|
|
dummyEntry21(null, null, null),
|
|
dummyEntry22(null, null, null),
|
|
dummyEntry23(null, null, null),
|
|
dummyEntry24(null, null, null),
|
|
dummyEntry25(null, null, null),
|
|
dummyEntry26(null, null, null),
|
|
dummyEntry27(null, null, null),
|
|
dummyEntry28(null, null, null),
|
|
dummyEntry29(null, null, null),
|
|
dummyEntry30(null, null, null),
|
|
/*
|
|
* (3rd classes)
|
|
*/
|
|
duelist(Race.HUMAN, Fighter, FOURTH),
|
|
dreadnought(Race.HUMAN, Fighter, FOURTH),
|
|
phoenixKnight(Race.HUMAN, Fighter, FOURTH),
|
|
hellKnight(Race.HUMAN, Fighter, FOURTH),
|
|
sagittarius(Race.HUMAN, Fighter, FOURTH),
|
|
adventurer(Race.HUMAN, Fighter, FOURTH),
|
|
archmage(Race.HUMAN, Mystic, FOURTH),
|
|
soultaker(Race.HUMAN, Mystic, FOURTH),
|
|
arcanaLord(Race.HUMAN, Mystic, FOURTH),
|
|
cardinal(Race.HUMAN, Priest, FOURTH),
|
|
hierophant(Race.HUMAN, Priest, FOURTH),
|
|
|
|
evaTemplar(Race.ELF, Fighter, FOURTH),
|
|
swordMuse(Race.ELF, Fighter, FOURTH),
|
|
windRider(Race.ELF, Fighter, FOURTH),
|
|
moonlightSentinel(Race.ELF, Fighter, FOURTH),
|
|
mysticMuse(Race.ELF, Mystic, FOURTH),
|
|
elementalMaster(Race.ELF, Mystic, FOURTH),
|
|
evaSaint(Race.ELF, Priest, FOURTH),
|
|
|
|
shillienTemplar(Race.DARK_ELF, Fighter, FOURTH),
|
|
spectralDancer(Race.DARK_ELF, Fighter, FOURTH),
|
|
ghostHunter(Race.DARK_ELF, Fighter, FOURTH),
|
|
ghostSentinel(Race.DARK_ELF, Fighter, FOURTH),
|
|
stormScreamer(Race.DARK_ELF, Mystic, FOURTH),
|
|
spectralMaster(Race.DARK_ELF, Mystic, FOURTH),
|
|
shillienSaint(Race.DARK_ELF, Priest, FOURTH),
|
|
|
|
titan(Race.ORC, Fighter, FOURTH),
|
|
grandKhavatari(Race.ORC, Fighter, FOURTH),
|
|
dominator(Race.ORC, Mystic, FOURTH),
|
|
doomcryer(Race.ORC, Mystic, FOURTH),
|
|
|
|
fortuneSeeker(Race.DWARF, Fighter, FOURTH),
|
|
maestro(Race.DWARF, Fighter, FOURTH),
|
|
|
|
dummyEntry31(null, null, null),
|
|
dummyEntry32(null, null, null),
|
|
dummyEntry33(null, null, null),
|
|
dummyEntry34(null, null, null),
|
|
|
|
maleSoldier(Race.KAMAEL, Fighter, FIRST),
|
|
femaleSoldier(Race.KAMAEL, Fighter, FIRST),
|
|
trooper(Race.KAMAEL, Fighter, SECOND),
|
|
warder(Race.KAMAEL, Fighter, SECOND),
|
|
berserker(Race.KAMAEL, Fighter, THIRD),
|
|
maleSoulbreaker(Race.KAMAEL, Fighter, THIRD),
|
|
femaleSoulbreaker(Race.KAMAEL, Fighter, THIRD),
|
|
arbalester(Race.KAMAEL, Fighter, THIRD),
|
|
doombringer(Race.KAMAEL, Fighter, FOURTH),
|
|
maleSoulhound(Race.KAMAEL, Fighter, FOURTH),
|
|
femaleSoulhound(Race.KAMAEL, Fighter, FOURTH),
|
|
trickster(Race.KAMAEL, Fighter, FOURTH),
|
|
inspector(Race.KAMAEL, Fighter, THIRD),
|
|
judicator(Race.KAMAEL, Fighter, FOURTH),
|
|
|
|
dummyEntry35(null, null, null),
|
|
dummyEntry36(null, null, null),
|
|
|
|
sigelKnight(null, Fighter, null),
|
|
tyrWarrior(null, Fighter, null),
|
|
otherRogue(null, Fighter, null),
|
|
yrArcher(null, Fighter, null),
|
|
feohWizard(null, Mystic, null),
|
|
issEnchanter(null, Priest, null),
|
|
wynnSummoner(null, Mystic, null),
|
|
eolhHealer(null, Priest, null),
|
|
|
|
dummyEntry37(null, null, null),
|
|
|
|
sigelPhoenixKnight(Race.HUMAN, Fighter, ClassLevel.AWAKEN),
|
|
sigelHellKnight(Race.HUMAN, Fighter, ClassLevel.AWAKEN),
|
|
sigelEvasTemplar(Race.ELF, Fighter, ClassLevel.AWAKEN),
|
|
sigelShilenTemplar(Race.DARK_ELF, Fighter, ClassLevel.AWAKEN),
|
|
tyrrDuelist(Race.HUMAN, Fighter, ClassLevel.AWAKEN),
|
|
tyrrDreadnought(Race.HUMAN, Fighter, ClassLevel.AWAKEN),
|
|
tyrrTitan(Race.ORC, Fighter, ClassLevel.AWAKEN),
|
|
tyrrGrandKhavatari(Race.ORC, Fighter, ClassLevel.AWAKEN),
|
|
tyrrMaestro(Race.DWARF, Fighter, ClassLevel.AWAKEN),
|
|
tyrrDoombringer(Race.KAMAEL, Fighter, ClassLevel.AWAKEN),
|
|
othellAdventurer(Race.HUMAN, Fighter, ClassLevel.AWAKEN),
|
|
othellWindRider(Race.ELF, Fighter, ClassLevel.AWAKEN),
|
|
othellGhostHunter(Race.DARK_ELF, Fighter, ClassLevel.AWAKEN),
|
|
othellFortuneSeeker(Race.DWARF, Fighter, ClassLevel.AWAKEN),
|
|
yulSagittarius(Race.HUMAN, Fighter, ClassLevel.AWAKEN),
|
|
yulMoonlightSentinel(Race.ELF, Fighter, ClassLevel.AWAKEN),
|
|
yulGhostSentinel(Race.DARK_ELF, Fighter, ClassLevel.AWAKEN),
|
|
yulTrickster(Race.KAMAEL, Fighter, ClassLevel.AWAKEN),
|
|
feohArchmage(Race.HUMAN, Mystic, ClassLevel.AWAKEN),
|
|
feohSoultaker(Race.HUMAN, Mystic, ClassLevel.AWAKEN),
|
|
feohMysticMuse(Race.ELF, Mystic, ClassLevel.AWAKEN),
|
|
feoStormScreamer(Race.DARK_ELF, Mystic, ClassLevel.AWAKEN),
|
|
feohSoulHound(Race.KAMAEL, Mystic, ClassLevel.AWAKEN), // fix me
|
|
issHierophant(Race.HUMAN, Priest, ClassLevel.AWAKEN),
|
|
issSwordMuse(Race.ELF, Fighter, ClassLevel.AWAKEN),
|
|
issSpectralDancer(Race.DARK_ELF, Fighter, ClassLevel.AWAKEN),
|
|
issDominator(Race.ORC, Priest, ClassLevel.AWAKEN),
|
|
issDoomcryer(Race.ORC, Priest, ClassLevel.AWAKEN),
|
|
wynnArcanaLord(Race.HUMAN, Mystic, ClassLevel.AWAKEN),
|
|
wynnElementalMaster(Race.ELF, Mystic, ClassLevel.AWAKEN),
|
|
wynnSpectralMaster(Race.DARK_ELF, Mystic, ClassLevel.AWAKEN),
|
|
aeoreCardinal(Race.HUMAN, Priest, ClassLevel.AWAKEN),
|
|
aeoreEvaSaint(Race.ELF, Priest, ClassLevel.AWAKEN),
|
|
aeoreShillienSaint(Race.DARK_ELF, Priest, ClassLevel.AWAKEN),
|
|
|
|
ertheiaFighter(Race.ERTHEIA, Fighter, ClassLevel.FIRST),
|
|
ertheiaWizzard(Race.ERTHEIA, Mystic, ClassLevel.FIRST),
|
|
|
|
marauder(Race.ERTHEIA, Fighter, ClassLevel.THIRD),
|
|
cloudBreaker(Race.ERTHEIA, Mystic, ClassLevel.THIRD),
|
|
|
|
ripper(Race.ERTHEIA, Fighter, ClassLevel.FOURTH),
|
|
Stratomancer(Race.ERTHEIA, Mystic, ClassLevel.FOURTH),
|
|
|
|
eviscerator(Race.ERTHEIA, Fighter, ClassLevel.AWAKEN),
|
|
sayhaSeer(Race.ERTHEIA, Mystic, ClassLevel.AWAKEN);
|
|
|
|
private Race _race;
|
|
private ClassLevel _level;
|
|
private ClassType _type;
|
|
|
|
private PlayerClass(Race race, ClassType pType, ClassLevel pLevel)
|
|
{
|
|
_race = race;
|
|
_level = pLevel;
|
|
_type = pType;
|
|
}
|
|
|
|
public static final EnumSet<PlayerClass> getSet(Race race, ClassLevel level)
|
|
{
|
|
EnumSet<PlayerClass> allOf = EnumSet.noneOf(PlayerClass.class);
|
|
|
|
for (PlayerClass playerClass : EnumSet.allOf(PlayerClass.class))
|
|
{
|
|
if ((race == null) || playerClass.isOfRace(race))
|
|
{
|
|
if ((level == null) || playerClass.isOfLevel(level))
|
|
{
|
|
allOf.add(playerClass);
|
|
}
|
|
}
|
|
}
|
|
return allOf;
|
|
}
|
|
|
|
public final boolean isOfRace(Race pRace)
|
|
{
|
|
return _race == pRace;
|
|
}
|
|
|
|
public final boolean isOfType(ClassType pType)
|
|
{
|
|
return _type == pType;
|
|
}
|
|
|
|
public final boolean isOfLevel(ClassLevel pLevel)
|
|
{
|
|
return _level == pLevel;
|
|
}
|
|
|
|
public final ClassLevel getLevel()
|
|
{
|
|
return _level;
|
|
}
|
|
}
|