Prevent addition of existing skills on item equip.

This commit is contained in:
MobiusDevelopment
2020-02-05 00:33:21 +00:00
parent 79aabdcb76
commit 1437711898
15 changed files with 360 additions and 60 deletions

View File

@@ -370,7 +370,7 @@ public abstract class Inventory extends ItemContainer
{
if (player.getSkillLevel(holder.getSkillId()) != 0)
{
return;
continue;
}
final Skill skill = holder.getSkill();
@@ -480,6 +480,11 @@ public abstract class Inventory extends ItemContainer
{
for (ItemSkillHolder holder : onEnchantSkills)
{
if (player.getSkillLevel(holder.getSkillId()) >= holder.getSkillLevel())
{
continue;
}
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
@@ -487,7 +492,7 @@ public abstract class Inventory extends ItemContainer
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
continue;
}
player.addSkill(skill, false);
update = true;
@@ -506,12 +511,17 @@ public abstract class Inventory extends ItemContainer
{
for (ItemSkillHolder holder : normalSkills)
{
if (player.getSkillLevel(holder.getSkillId()) >= holder.getSkillLevel())
{
continue;
}
final Skill skill = holder.getSkill();
if (skill != null)
{
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
continue;
}
player.addSkill(skill, false);
@@ -545,6 +555,11 @@ public abstract class Inventory extends ItemContainer
for (ItemSkillHolder holder : otherEnchantSkills)
{
if (player.getSkillLevel(holder.getSkillId()) >= holder.getSkillLevel())
{
continue;
}
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
@@ -552,7 +567,7 @@ public abstract class Inventory extends ItemContainer
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
continue;
}
player.addSkill(skill, false);
update = true;
@@ -632,6 +647,11 @@ public abstract class Inventory extends ItemContainer
boolean update = false;
for (ArmorsetSkillHolder holder : armorSet.getSkills())
{
if (player.getSkillLevel(holder.getSkillId()) >= holder.getSkillLevel())
{
continue;
}
if (holder.validateConditions(player, armorSet, idProvider))
{
final Skill itemSkill = holder.getSkill();