private static final int[][] _shotEffectId = {
// NG, D, C, B, A, S+, R+, , , BEAST
{ 2039, 2150, 2151, 2152, 2153, 2154, 9193, 0, 0, 2033 }, // Soul Shot
{ 2061, 2155, 2156, 2157, 2158, 2159, 9194, 0, 0, 2008 }, // Spirit Shot
{ 2061, 2160, 2161, 2162, 2163, 2164, 9195, 0, 0, 2009 } }; // Blessed Spirit Shot
protected static final Skill[][] _shotEffect = {
// Soul Shot | Ruby
{
null,
SkillHolder.getInstance().getSkill(17814, 1),
SkillHolder.getInstance().getSkill(17814, 2),
SkillHolder.getInstance().getSkill(17815, 1),
SkillHolder.getInstance().getSkill(17816, 1),
SkillHolder.getInstance().getSkill(17817, 1),
SkillHolder.getInstance().getSkill(18715, 1)
},
// Spirit Shot | Sapphire
{
null,
SkillHolder.getInstance().getSkill(17818, 1),
SkillHolder.getInstance().getSkill(17818, 2),
SkillHolder.getInstance().getSkill(17819, 1),
SkillHolder.getInstance().getSkill(17820, 1),
SkillHolder.getInstance().getSkill(17821, 1),
SkillHolder.getInstance().getSkill(18718, 1)
},
// Blessed Spirit Shot | Sapphire
{
null,
SkillHolder.getInstance().getSkill(17818, 3),
SkillHolder.getInstance().getSkill(17818, 4),
SkillHolder.getInstance().getSkill(17819, 2),
SkillHolder.getInstance().getSkill(17820, 2),
SkillHolder.getInstance().getSkill(17821, 2),
SkillHolder.getInstance().getSkill(18718, 2)
} };
protected static void broadcastShotEffect(Creature owner, Creature target, int type, int grade)
{
int shotEffect = (int) owner.calcStat(type == 0 ? Stats.SS_EFFECT : Stats.SPS_EFFECT);
if (shotEffect == 0)
target.broadcastPacket(new MagicSkillUse(target, _shotEffectId[type][grade], 1, 0, 0));
else
target.broadcastPacket(new MagicSkillUse(target, _shotEffect[type][shotEffect]));
}