Fixed Monk of Chaos skill removal.
This commit is contained in:
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -877,6 +877,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -877,6 +877,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -877,6 +877,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -877,6 +877,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -877,6 +877,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -877,6 +877,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
@@ -34,12 +34,13 @@ import ai.AbstractNpcAI;
|
|||||||
/**
|
/**
|
||||||
* Monk of Chaos AI.
|
* Monk of Chaos AI.
|
||||||
* @author Sdw
|
* @author Sdw
|
||||||
|
* @author Mobius
|
||||||
*/
|
*/
|
||||||
public final class MonkOfChaos extends AbstractNpcAI
|
public final class MonkOfChaos extends AbstractNpcAI
|
||||||
{
|
{
|
||||||
private static final int MONK_OF_CHAOS = 33880;
|
private static final int MONK_OF_CHAOS = 33880;
|
||||||
private static final int MIN_LEVEL = 85;
|
private static final int MIN_LEVEL = 85;
|
||||||
private static final long CANCEL_FEE = 100000000;
|
private static final int CANCEL_FEE = 100000000;
|
||||||
private static final int CHAOS_POMANDER = 37374;
|
private static final int CHAOS_POMANDER = 37374;
|
||||||
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
private static final int CHAOS_POMANDER_DUALCLASS = 37375;
|
||||||
private static final String[] REVELATION_VAR_NAMES =
|
private static final String[] REVELATION_VAR_NAMES =
|
||||||
@@ -91,7 +92,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
if (player.isDualClassActive())
|
if (player.isDualClassActive())
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
|
||||||
@@ -104,7 +104,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
|
||||||
|
|
||||||
if (skills.size() > 0)
|
if (skills.size() > 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
|
||||||
@@ -124,11 +123,8 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
final String[] varNames = player.isDualClassActive() ? DUALCLASS_REVELATION_VAR_NAMES : REVELATION_VAR_NAMES;
|
||||||
final int chaosPomander = player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER;
|
int count = 0;
|
||||||
|
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
if (player.getVariables().getInt(varName, 0) > 0)
|
if (player.getVariables().getInt(varName, 0) > 0)
|
||||||
@@ -136,7 +132,6 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
if ((player.getLevel() < MIN_LEVEL) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || (count == 0))
|
||||||
{
|
{
|
||||||
htmltext = "no-cancel.html";
|
htmltext = "no-cancel.html";
|
||||||
@@ -148,17 +143,18 @@ public final class MonkOfChaos extends AbstractNpcAI
|
|||||||
htmltext = "no-adena.html";
|
htmltext = "no-adena.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
takeItems(player, 57, CANCEL_FEE);
|
||||||
|
|
||||||
|
for (SkillLearn skill : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
|
||||||
|
{
|
||||||
|
player.removeSkill(skill.getSkillId());
|
||||||
|
}
|
||||||
for (String varName : varNames)
|
for (String varName : varNames)
|
||||||
{
|
{
|
||||||
final int skillId = player.getVariables().getInt(varName, 0);
|
player.getVariables().remove(varName);
|
||||||
if (skillId > 0)
|
|
||||||
{
|
|
||||||
player.removeSkill(skillId);
|
|
||||||
player.getVariables().remove(varName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
giveItems(player, chaosPomander, count);
|
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUALCLASS : CHAOS_POMANDER, count);
|
||||||
htmltext = "canceled.html";
|
htmltext = "canceled.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -879,6 +879,18 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the complete revelation skill list.
|
||||||
|
* @param player the player requesting the revelation skills
|
||||||
|
* @param type the player current subclass type
|
||||||
|
* @return all the available revelation skills for a given {@code player}
|
||||||
|
*/
|
||||||
|
public Collection<SkillLearn> getAllRevelationSkills(PlayerInstance player, SubclassType type)
|
||||||
|
{
|
||||||
|
final Map<Long, SkillLearn> revelationSkills = _revelationSkillTree.get(type);
|
||||||
|
return revelationSkills == null ? Collections.emptyList() : revelationSkills.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the available alchemy skills, restricted to Ertheia
|
* Gets the available alchemy skills, restricted to Ertheia
|
||||||
* @param player the player requesting the alchemy skills
|
* @param player the player requesting the alchemy skills
|
||||||
|
Reference in New Issue
Block a user