Reuse active, non offensive, item skill cooldown on equip.

Thanks to Liamxroy.
This commit is contained in:
MobiusDevelopment
2022-12-02 23:42:12 +00:00
parent 8c180a4e96
commit 9aef448d32
78 changed files with 1378 additions and 182 deletions

View File

@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1785,6 +1787,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);

View File

@@ -577,6 +577,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -615,14 +622,24 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
{
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -679,6 +696,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -783,9 +807,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -794,8 +818,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}