Configurations for olympiad enchant restrictions.

Contributed by Trance.
This commit is contained in:
MobiusDevelopment
2020-09-25 11:28:26 +00:00
parent 929082db90
commit cd38da68ef
60 changed files with 540 additions and 105 deletions

View File

@@ -550,7 +550,8 @@ public class Config
public static boolean ALT_OLY_SHOW_MONTHLY_WINNERS;
public static boolean ALT_OLY_ANNOUNCE_GAMES;
public static List<Integer> LIST_OLY_RESTRICTED_ITEMS = new ArrayList<>();
public static int ALT_OLY_ENCHANT_LIMIT;
public static int ALT_OLY_WEAPON_ENCHANT_LIMIT;
public static int ALT_OLY_ARMOR_ENCHANT_LIMIT;
public static int ALT_OLY_WAIT_TIME;
public static boolean ALT_OLY_USE_CUSTOM_PERIOD_SETTINGS;
public static String ALT_OLY_PERIOD;
@@ -2386,7 +2387,8 @@ public class Config
{
LIST_OLY_RESTRICTED_ITEMS.clear();
}
ALT_OLY_ENCHANT_LIMIT = Olympiad.getInt("AltOlyEnchantLimit", -1);
ALT_OLY_WEAPON_ENCHANT_LIMIT = Olympiad.getInt("AltOlyWeaponEnchantLimit", -1);
ALT_OLY_ARMOR_ENCHANT_LIMIT = Olympiad.getInt("AltOlyArmorEnchantLimit", -1);
ALT_OLY_WAIT_TIME = Olympiad.getInt("AltOlyWaitTime", 60);
ALT_OLY_USE_CUSTOM_PERIOD_SETTINGS = Olympiad.getBoolean("AltOlyUseCustomPeriodSettings", false);
ALT_OLY_PERIOD = Olympiad.getString("AltOlyPeriod", "MONTH");

View File

@@ -2011,9 +2011,22 @@ public class ItemInstance extends WorldObject
return enchant;
}
if (player.isInOlympiadMode() && (Config.ALT_OLY_ENCHANT_LIMIT >= 0) && (enchant > Config.ALT_OLY_ENCHANT_LIMIT))
if (player.isInOlympiadMode())
{
enchant = Config.ALT_OLY_ENCHANT_LIMIT;
if (_item.isWeapon())
{
if ((Config.ALT_OLY_WEAPON_ENCHANT_LIMIT >= 0) && (enchant > Config.ALT_OLY_WEAPON_ENCHANT_LIMIT))
{
enchant = Config.ALT_OLY_WEAPON_ENCHANT_LIMIT;
}
}
else
{
if ((Config.ALT_OLY_ARMOR_ENCHANT_LIMIT >= 0) && (enchant > Config.ALT_OLY_ARMOR_ENCHANT_LIMIT))
{
enchant = Config.ALT_OLY_ARMOR_ENCHANT_LIMIT;
}
}
}
return enchant;

View File

@@ -129,9 +129,22 @@ public interface IStatFunction
final double blessedBonus = item.isBlessed() ? 1.5 : 1;
int enchant = equippedItem.getEnchantLevel();
if (creature.getActingPlayer().isInOlympiadMode() && (Config.ALT_OLY_ENCHANT_LIMIT >= 0) && (enchant > Config.ALT_OLY_ENCHANT_LIMIT))
if (creature.getActingPlayer().isInOlympiadMode())
{
enchant = Config.ALT_OLY_ENCHANT_LIMIT;
if (item.isWeapon())
{
if ((Config.ALT_OLY_WEAPON_ENCHANT_LIMIT >= 0) && (enchant > Config.ALT_OLY_WEAPON_ENCHANT_LIMIT))
{
enchant = Config.ALT_OLY_WEAPON_ENCHANT_LIMIT;
}
}
else
{
if ((Config.ALT_OLY_ARMOR_ENCHANT_LIMIT >= 0) && (enchant > Config.ALT_OLY_ARMOR_ENCHANT_LIMIT))
{
enchant = Config.ALT_OLY_ARMOR_ENCHANT_LIMIT;
}
}
}
if ((stat == Stat.MAGICAL_DEFENCE) || (stat == Stat.PHYSICAL_DEFENCE))