Replacing elemental skill shortcuts.
This commit is contained in:
@ -14,7 +14,6 @@
|
||||
* 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 handlers.effecthandlers;
|
||||
|
||||
import java.util.HashSet;
|
||||
@ -26,6 +25,7 @@ import com.l2jmobius.gameserver.model.conditions.Condition;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ShortCutInit;
|
||||
|
||||
/**
|
||||
* @author Ofelin
|
||||
@ -91,6 +91,7 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 1, skillLevel), false);
|
||||
player.replaceShortCuts(skillId, skillId + 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -102,6 +103,7 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 2, skillLevel), false);
|
||||
player.replaceShortCuts(skillId, skillId + 2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -113,6 +115,7 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 3, skillLevel), false);
|
||||
player.replaceShortCuts(skillId, skillId + 3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -124,11 +127,13 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 4, skillLevel), false);
|
||||
player.replaceShortCuts(skillId, skillId + 4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
player.sendSkillList();
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -145,6 +150,7 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId + 1);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 1, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.replaceShortCuts(skillId + 1, skillId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -156,6 +162,7 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId + 2);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 2, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.replaceShortCuts(skillId + 2, skillId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -167,6 +174,7 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId + 3);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 3, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.replaceShortCuts(skillId + 3, skillId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -178,10 +186,12 @@ public class FeohStance extends AbstractEffect
|
||||
final int skillLevel = player.getSkillLevel(skillId + 4);
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 4, skillLevel), false);
|
||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||
player.replaceShortCuts(skillId + 4, skillId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
player.sendSkillList();
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
}
|
||||
}
|
||||
|
@ -292,4 +292,23 @@ public class ShortCuts implements IRestorable
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the shortcut icon with the new skill.
|
||||
* @param skillId the skill Id to search.
|
||||
* @param newSkillId the skill Id to replace.
|
||||
*/
|
||||
public void replaceShortCuts(int skillId, int newSkillId)
|
||||
{
|
||||
// Replace all the shortcuts with the new skill
|
||||
for (Shortcut sc : _shortCuts.values())
|
||||
{
|
||||
if ((sc.getId() == skillId) && (sc.getType() == ShortcutType.SKILL))
|
||||
{
|
||||
final Shortcut newsc = new Shortcut(sc.getSlot(), sc.getPage(), sc.getType(), newSkillId, sc.getLevel(), 1);
|
||||
_owner.sendPacket(new ShortCutRegister(newsc));
|
||||
_owner.registerShortCut(newsc);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1651,6 +1651,16 @@ public final class L2PcInstance extends L2Playable
|
||||
_shortCuts.updateShortCuts(skillId, skillLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the shortcut icon with the new skill.
|
||||
* @param skillId the skill Id to search.
|
||||
* @param newSkillId the skill Id to replace.
|
||||
*/
|
||||
public void replaceShortCuts(int skillId, int newSkillId)
|
||||
{
|
||||
_shortCuts.replaceShortCuts(skillId, newSkillId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the L2ShortCut corresponding to the position (page-slot) from the L2PcInstance _shortCuts.
|
||||
* @param slot
|
||||
|
Reference in New Issue
Block a user