-
Notifications
You must be signed in to change notification settings - Fork 755
/
DuelWieldingModifier.java
36 lines (32 loc) · 1.47 KB
/
DuelWieldingModifier.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package slimeknights.tconstruct.tools.modifiers.ability.tool;
import slimeknights.tconstruct.common.TinkerTags;
import slimeknights.tconstruct.library.modifiers.ModifierEntry;
import slimeknights.tconstruct.library.modifiers.ModifierHooks;
import slimeknights.tconstruct.library.modifiers.hook.build.ToolStatsModifierHook;
import slimeknights.tconstruct.library.module.ModuleHookMap.Builder;
import slimeknights.tconstruct.library.tools.context.ToolRebuildContext;
import slimeknights.tconstruct.library.tools.stat.ModifierStatsBuilder;
import slimeknights.tconstruct.library.tools.stat.ToolStats;
public class DuelWieldingModifier extends OffhandAttackModifier implements ToolStatsModifierHook {
@Override
protected void registerHooks(Builder hookBuilder) {
super.registerHooks(hookBuilder);
hookBuilder.addHook(this, ModifierHooks.TOOL_STATS);
}
@Override
public void addToolStats(ToolRebuildContext context, ModifierEntry modifier, ModifierStatsBuilder builder) {
// on two handed tools, take a larger hit to attack damage, smaller to attack speed
if (context.hasTag(TinkerTags.Items.BROAD_TOOLS)) {
ToolStats.ATTACK_DAMAGE.multiplyAll(builder, 0.7);
ToolStats.ATTACK_SPEED.multiplyAll(builder, 0.9);
} else {
// on one handed tools, 80% on both
ToolStats.ATTACK_DAMAGE.multiplyAll(builder, 0.8);
ToolStats.ATTACK_SPEED.multiplyAll(builder, 0.8);
}
}
@Override
public boolean shouldDisplay(boolean advanced) {
return true;
}
}