Revamp the entire skillset and rebalance everything.

This commit is contained in:
2026-08-25 10:04:34 +02:00
parent e36fc74a1f
commit d55c9d398c
3 changed files with 13 additions and 2 deletions
+7
View File
@@ -2,6 +2,13 @@
This changelog covers all recorded changes after `1.0.0`, grouped by release version from the git history. This changelog covers all recorded changes after `1.0.0`, grouped by release version from the git history.
## 3.1.0
- Added a public passive Agility event API so integrations such as skill-tree mods can contribute additional Agility points per player.
- Applied passive Agility to both movement speed and Agility-based weapon scaling, with all contributions continuing through Ascend's configured diminishing-return curve beyond the normal investment cap.
- Added a public refresh hook so integrations can immediately update a player's movement speed after their passive Agility changes.
- Added automated coverage for passive contribution handling and attribute scaling beyond 100 combined Agility.
## 3.0.8 ## 3.0.8
- Increased Agility's default maximum movement-speed bonus from 15% to 25% so the stat retains a stronger mobility identity alongside its weapon-grade damage scaling. - Increased Agility's default maximum movement-speed bonus from 15% to 25% so the stat retains a stronger mobility identity alongside its weapon-grade damage scaling.
+1 -1
View File
@@ -56,7 +56,7 @@ mod_name=Ascend: SbA
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=All Rights Reserved mod_license=All Rights Reserved
# The mod version. See https://semver.org/ # The mod version. See https://semver.org/
mod_version=3.0.8 mod_version=3.1.0
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources. # This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html # See https://maven.apache.org/guides/mini/guide-naming-conventions.html
@@ -1,5 +1,6 @@
package net.fretux.ascend.player; package net.fretux.ascend.player;
import net.fretux.ascend.api.PassiveAgilityApi;
import net.fretux.ascend.compat.IronsSpellbooksCompat; import net.fretux.ascend.compat.IronsSpellbooksCompat;
import net.fretux.ascend.config.AscendConfig; import net.fretux.ascend.config.AscendConfig;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
@@ -57,7 +58,7 @@ public final class StatEffects {
AttributeInstance movement = player.getAttribute(Attributes.MOVEMENT_SPEED); AttributeInstance movement = player.getAttribute(Attributes.MOVEMENT_SPEED);
if (movement == null) return; if (movement == null) return;
movement.removeModifier(AGILITY_SPEED_UUID); movement.removeModifier(AGILITY_SPEED_UUID);
double bonus = getAgilityMovementSpeedBonus(level); double bonus = getAgilityMovementSpeedBonus(player, level);
if (bonus > 0) movement.addTransientModifier(new AttributeModifier(AGILITY_SPEED_UUID, if (bonus > 0) movement.addTransientModifier(new AttributeModifier(AGILITY_SPEED_UUID,
"Ascend Agility movement bonus", bonus, AttributeModifier.Operation.MULTIPLY_BASE)); "Ascend Agility movement bonus", bonus, AttributeModifier.Operation.MULTIPLY_BASE));
} }
@@ -66,6 +67,9 @@ public final class StatEffects {
public static double getStrengthKnockbackBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.strengthKnockbackBonus); } public static double getStrengthKnockbackBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.strengthKnockbackBonus); }
public static double getStrengthArmorPenetration(int level) { return normalized(level) * configured(AscendConfig.COMMON.strengthArmorPenetration); } public static double getStrengthArmorPenetration(int level) { return normalized(level) * configured(AscendConfig.COMMON.strengthArmorPenetration); }
public static double getAgilityMovementSpeedBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.agilityMovementSpeedBonus); } public static double getAgilityMovementSpeedBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.agilityMovementSpeedBonus); }
public static double getAgilityMovementSpeedBonus(Player player, int level) {
return PassiveAgilityApi.getNormalizedAgility(player, level) * configured(AscendConfig.COMMON.agilityMovementSpeedBonus);
}
public static int getMindManaBonus(int level) { return (int) Math.floor(normalized(level) * configured(AscendConfig.COMMON.mindMaxManaBonus)); } public static int getMindManaBonus(int level) { return (int) Math.floor(normalized(level) * configured(AscendConfig.COMMON.mindMaxManaBonus)); }
public static double getMindManaRegenBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.mindManaRegenBonus); } public static double getMindManaRegenBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.mindManaRegenBonus); }
public static double getIntelligenceSpellPowerBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.intelligenceSpellPowerBonus); } public static double getIntelligenceSpellPowerBonus(int level) { return normalized(level) * configured(AscendConfig.COMMON.intelligenceSpellPowerBonus); }