/*
OrpheusMS: MapleStory Private Server based on OdinMS
Copyright (C) 2012 Aaron Weiss
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package client;
public enum MapleJob {
BEGINNER(0),
WARRIOR(100), FIGHTER(110), CRUSADER(111), HERO(112), PAGE(120), WHITEKNIGHT(121), PALADIN(122), SPEARMAN(130), DRAGONKNIGHT(131), DARKKNIGHT(132),
MAGICIAN(200), FP_WIZARD(210), FP_MAGE(211), FP_ARCHMAGE(212), IL_WIZARD(220), IL_MAGE(221), IL_ARCHMAGE(222), CLERIC(230), PRIEST(231), BISHOP(232),
BOWMAN(300), HUNTER(310), RANGER(311), BOWMASTER(312), CROSSBOWMAN(320), SNIPER(321), MARKSMAN(322),
THIEF(400), ASSASSIN(410), HERMIT(411), NIGHTLORD(412), BANDIT(420), CHIEFBANDIT(421), SHADOWER(422),
PIRATE(500), BRAWLER(510), MARAUDER(511), BUCCANEER(512), GUNSLINGER(520), OUTLAW(521), CORSAIR(522),
MAPLELEAF_BRIGADIER(800), GM(900), SUPERGM(910),
NOBLESSE(1000), DAWNWARRIOR1(1100), DAWNWARRIOR2(1110), DAWNWARRIOR3(1111), DAWNWARRIOR4(1112), BLAZEWIZARD1(1200), BLAZEWIZARD2(1210), BLAZEWIZARD3(1211), BLAZEWIZARD4(1212), WINDARCHER1(1300), WINDARCHER2(1310), WINDARCHER3(1311), WINDARCHER4(1312), NIGHTWALKER1(1400), NIGHTWALKER2(1410), NIGHTWALKER3(1411), NIGHTWALKER4(1412), THUNDERBREAKER1(1500), THUNDERBREAKER2(1510), THUNDERBREAKER3(1511), THUNDERBREAKER4(1512),
LEGEND(2000), ARAN1(2100), ARAN2(2110), ARAN3(2111), ARAN4(2112);
final int jobid;
private MapleJob(int id) {
jobid = id;
}
public int getId() {
return jobid;
}
public static MapleJob getById(int id) {
for (MapleJob l : MapleJob.values()) {
if (l.getId() == id) {
return l;
}
}
return null;
}
public static MapleJob getBy5ByteEncoding(int encoded) {
switch (encoded) {
case 2:
return WARRIOR;
case 4:
return MAGICIAN;
case 8:
return BOWMAN;
case 16:
return THIEF;
case 32:
return PIRATE;
case 1024:
return NOBLESSE;
case 2048:
return DAWNWARRIOR1;
case 4096:
return BLAZEWIZARD1;
case 8192:
return WINDARCHER1;
case 16384:
return NIGHTWALKER1;
case 32768:
return THUNDERBREAKER1;
default:
return BEGINNER;
}
}
public boolean isA(MapleJob basejob) {
return getId() >= basejob.getId() && getId() / 100 == basejob.getId() / 100;
}
public String toString() {
switch (this) {
case BEGINNER:
return "Beginner";
case WARRIOR:
return "Warrior";
case FIGHTER:
return "Fighter";
case CRUSADER:
return "Crusader";
case HERO:
return "Hero";
case PAGE:
return "Page";
case WHITEKNIGHT:
return "White Knight";
case PALADIN:
return "Paladin";
case SPEARMAN:
return "Spearman";
case DRAGONKNIGHT:
return "Dragon Knight";
case DARKKNIGHT:
return "Dark Knight";
case MAGICIAN:
return "Magician";
case FP_WIZARD:
return "Fire/Posion Wizard";
case FP_MAGE:
return "Fire/Posion Mage";
case FP_ARCHMAGE:
return "Fire/Posion Archmage";
case IL_WIZARD:
return "Ice/Lightning Wizard";
case IL_MAGE:
return "Ice/Lightning Mage";
case IL_ARCHMAGE:
return "Ice/Lightning Archmage";
case CLERIC:
return "Cleric";
case PRIEST:
return "Priest";
case BISHOP:
return "Bishop";
case BOWMAN:
return "Bowman";
case HUNTER:
return "Hunter";
case RANGER:
return "Ranger";
case BOWMASTER:
return "Bowmaster";
case CROSSBOWMAN:
return "Crossbowman";
case SNIPER:
return "Sniper";
case MARKSMAN:
return "Marksman";
case THIEF:
return "Thief";
case ASSASSIN:
return "Assassin";
case HERMIT:
return "Hermit";
case NIGHTLORD:
return "Night Lord";
case BANDIT:
return "Bandit";
case CHIEFBANDIT:
return "Chief Bandit";
case SHADOWER:
return "Shadower";
case PIRATE:
return "Pirate";
case BRAWLER:
return "Brawler";
case MARAUDER:
return "Marauder";
case BUCCANEER:
return "Buccaneer";
case GUNSLINGER:
return "Gunslinger";
case OUTLAW:
return "Outlaw";
case CORSAIR:
return "Corsair";
case MAPLELEAF_BRIGADIER:
return "Maple Leaf Brigadier";
case GM:
return "GM";
case SUPERGM:
return "SuperGM";
case NOBLESSE:
return "Noblesse";
case DAWNWARRIOR1:
return "Dawn Warrior (Rank 1)";
case DAWNWARRIOR2:
return "Dawn Warrior (Rank 2)";
case DAWNWARRIOR3:
return "Dawn Warrior (Rank 3)";
case DAWNWARRIOR4:
return "Dawn Warrior (Rank 4)";
case BLAZEWIZARD1:
return "Blaze Wizard (Rank 1)";
case BLAZEWIZARD2:
return "Blaze Wizard (Rank 2)";
case BLAZEWIZARD3:
return "Blaze Wizard (Rank 3)";
case BLAZEWIZARD4:
return "Blaze Wizard (Rank 4)";
case WINDARCHER1:
return "Wind Archer (Rank 1)";
case WINDARCHER2:
return "Wind Archer (Rank 2)";
case WINDARCHER3:
return "Wind Archer (Rank 3)";
case WINDARCHER4:
return "Wind Archer (Rank 4)";
case NIGHTWALKER1:
return "Night Walker (Rank 1)";
case NIGHTWALKER2:
return "Night Walker (Rank 2)";
case NIGHTWALKER3:
return "Night Walker (Rank 3)";
case NIGHTWALKER4:
return "Night Walker (Rank 4)";
case THUNDERBREAKER1:
return "Thunder Breaker (Rank 1)";
case THUNDERBREAKER2:
return "Thunder Breaker (Rank 2)";
case THUNDERBREAKER3:
return "Thunder Breaker (Rank 3)";
case THUNDERBREAKER4:
return "Thunder Breaker (Rank 4)";
case LEGEND:
return "Legend";
case ARAN1:
return "Aran (Rank 1)";
case ARAN2:
return "Aran (Rank 2)";
case ARAN3:
return "Aran (Rank 3)";
case ARAN4:
return "Aran (Rank 4)";
default:
return "Unknown";
}
}
}