diff --git a/api/src/main/java/net/momirealms/customfishing/api/mechanic/context/ContextKeys.java b/api/src/main/java/net/momirealms/customfishing/api/mechanic/context/ContextKeys.java index 031c7677..3e704d64 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/mechanic/context/ContextKeys.java +++ b/api/src/main/java/net/momirealms/customfishing/api/mechanic/context/ContextKeys.java @@ -41,6 +41,8 @@ public class ContextKeys { public static final ContextKeys NICK = of("nick", String.class); public static final ContextKeys OPEN_WATER = of("open_water", Boolean.class); public static final ContextKeys SIZE = of("size", Float.class); + public static final ContextKeys SIZE_MULTIPLIER = of("size_multiplier", Double.class); + public static final ContextKeys SIZE_ADDER = of("size_adder", Double.class); public static final ContextKeys SIZE_FORMATTED = of("size_formatted", String.class); public static final ContextKeys PRICE = of("price", Double.class); public static final ContextKeys PRICE_FORMATTED = of("price_formatted", String.class); diff --git a/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java b/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java index 5a569dd6..d51279fd 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java +++ b/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java @@ -457,6 +457,8 @@ public class CustomFishingHook { switch (lootType) { case ITEM -> { + context.arg(ContextKeys.SIZE_MULTIPLIER, tempFinalEffect.sizeMultiplier()); + context.arg(ContextKeys.SIZE_ADDER, tempFinalEffect.sizeAdder()); for (int i = 0; i < amount; i++) { plugin.getScheduler().sync().runLater(() -> { Item item = plugin.getItemManager().dropItemLoot(context, gears.getItem(FishingGears.GearType.ROD).stream().findAny().orElseThrow().right(), hook); @@ -526,6 +528,7 @@ public class CustomFishingHook { } } else if (competition.getGoal() == CompetitionGoal.TOTAL_SCORE) { score = nextLoot.score().evaluate(context); + score = score * tempFinalEffect.scoreMultiplier() + tempFinalEffect.scoreAdder(); if (score != 0) { competition.refreshData(context.getHolder(), score); } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java index 47784afa..05d00e0d 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java @@ -484,6 +484,19 @@ public class BukkitConfigManager extends ConfigManager { double minSize = min.evaluate(context); double maxSize = max.evaluate(context); float size = (float) RandomUtils.generateRandomDouble(minSize, maxSize); + Double sm = context.arg(ContextKeys.SIZE_MULTIPLIER); + if (sm == null) sm = 1.0; + Double sa = context.arg(ContextKeys.SIZE_ADDER); + if (sa == null) sa = 0.0; + size = (float) (sm * size + sa); + if (restrictedSizeRange()) { + if (size > maxSize) { + size = (float) maxSize; + } + if (size < minSize) { + size = (float) minSize; + } + } item.setTag(size, "CustomFishing", "size"); context.arg(ContextKeys.SIZE, size); context.arg(ContextKeys.MIN_SIZE, minSize); diff --git a/gradle.properties b/gradle.properties index a209eea9..5d94807a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=2.2.17 +project_version=2.2.18 config_version=36 project_group=net.momirealms