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

@@ -535,7 +535,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 String ALT_OLY_PERIOD;
public static int ALT_OLY_PERIOD_MULTIPLIER;
@@ -2408,7 +2409,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_PERIOD = Olympiad.getString("AltOlyPeriod", "MONTH");
ALT_OLY_PERIOD_MULTIPLIER = Olympiad.getInt("AltOlyPeriodMultiplier", 1);

View File

@@ -2019,9 +2019,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))