Skip to content

Commit

Permalink
Implement broad and small tool tags
Browse files Browse the repository at this point in the history
Replaces TWO_HANDED for the debuff on dual wielding, as ditching two handed was not meant to make broad axes faster in the offhand
  • Loading branch information
KnightMiner committed Feb 18, 2024
1 parent f3fc6fc commit 360cd47
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"replace": false,
"values": [
"tconstruct:sledge_hammer",
"tconstruct:vein_hammer",
"tconstruct:excavator",
"tconstruct:broad_axe",
"tconstruct:scythe",
"tconstruct:cleaver",
"tconstruct:longbow"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"replace": false,
"values": [
"tconstruct:pickaxe",
"tconstruct:mattock",
"tconstruct:pickadze",
"tconstruct:hand_axe",
"tconstruct:kama",
"tconstruct:dagger",
"tconstruct:sword",
"tconstruct:crossbow",
"tconstruct:flint_and_brick"
]
}
9 changes: 7 additions & 2 deletions src/main/java/slimeknights/tconstruct/common/TinkerTags.java
Original file line number Diff line number Diff line change
Expand Up @@ -304,15 +304,20 @@ private static void init() {}
public static final TagKey<Item> MULTIPART_TOOL = tag("modifiable/multipart");
/** Modifiable items that can have range increased */
public static final TagKey<Item> AOE = tag("modifiable/aoe");
/** @deprecated use {@link #HELD} or {@link #INTERACTABLE_RIGHT} */
/** @deprecated use {@link #HELD}, {@link #INTERACTABLE_RIGHT}, or {@link #SMALL_TOOLS} */
@Deprecated
public static final TagKey<Item> ONE_HANDED = tag("modifiable/one_handed");
/** @deprecated use {@link #HELD} or {@link #INTERACTABLE_RIGHT} */
/** @deprecated use {@link #HELD}, {@link #INTERACTABLE_RIGHT}, or {@link #BROAD_TOOLS} */
@Deprecated
public static final TagKey<Item> TWO_HANDED = tag("modifiable/two_handed");
/** Tools that use durability and can be repaired. Items in this tag support the {@link ToolStats#DURABILITY} stat. */
public static final TagKey<Item> DURABILITY = tag("modifiable/durability");

/** Generally faster tools with lower damage */
public static final TagKey<Item> SMALL_TOOLS = tag("modifiable/small");
/** Generally slower tools with higher damage, to customize stat debuff on offhand attack */
public static final TagKey<Item> BROAD_TOOLS = tag("modifiable/broad");

/** @deprecated This used to be common, but the melee unarmed combo ended up being more common, and a compound ingredient is pretty trivial */
@Deprecated
public static final TagKey<Item> MELEE_OR_HARVEST = tag("modifiable/melee_or_harvest");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import static slimeknights.tconstruct.common.TinkerTags.Items.ARMOR;
import static slimeknights.tconstruct.common.TinkerTags.Items.BOOTS;
import static slimeknights.tconstruct.common.TinkerTags.Items.BOWS;
import static slimeknights.tconstruct.common.TinkerTags.Items.BROAD_TOOLS;
import static slimeknights.tconstruct.common.TinkerTags.Items.CHESTPLATES;
import static slimeknights.tconstruct.common.TinkerTags.Items.CROSSBOWS;
import static slimeknights.tconstruct.common.TinkerTags.Items.DURABILITY;
Expand Down Expand Up @@ -69,6 +70,7 @@
import static slimeknights.tconstruct.common.TinkerTags.Items.PARRY;
import static slimeknights.tconstruct.common.TinkerTags.Items.RANGED;
import static slimeknights.tconstruct.common.TinkerTags.Items.SHIELDS;
import static slimeknights.tconstruct.common.TinkerTags.Items.SMALL_TOOLS;
import static slimeknights.tconstruct.common.TinkerTags.Items.STAFFS;
import static slimeknights.tconstruct.common.TinkerTags.Items.STONE_HARVEST;
import static slimeknights.tconstruct.common.TinkerTags.Items.SWORD;
Expand Down Expand Up @@ -223,28 +225,28 @@ private void addWorld() {
private void addTools() {
this.tag(TWO_HANDED);
// stone
addToolTags(TinkerTools.pickaxe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, STONE_HARVEST, MELEE, ONE_HANDED, AOE, CLUSTER_MAX_HARVESTABLES);
addToolTags(TinkerTools.sledgeHammer, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, STONE_HARVEST, MELEE_PRIMARY, ONE_HANDED, AOE, CLUSTER_MAX_HARVESTABLES);
addToolTags(TinkerTools.veinHammer, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, STONE_HARVEST, MELEE, ONE_HANDED, AOE, CLUSTER_MAX_HARVESTABLES);
addToolTags(TinkerTools.pickaxe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, STONE_HARVEST, MELEE, ONE_HANDED, AOE, CLUSTER_MAX_HARVESTABLES, SMALL_TOOLS);
addToolTags(TinkerTools.sledgeHammer, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, STONE_HARVEST, MELEE_PRIMARY, ONE_HANDED, AOE, CLUSTER_MAX_HARVESTABLES, BROAD_TOOLS);
addToolTags(TinkerTools.veinHammer, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, STONE_HARVEST, MELEE, ONE_HANDED, AOE, CLUSTER_MAX_HARVESTABLES, BROAD_TOOLS);
// dirtD
addToolTags(TinkerTools.mattock, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE);
addToolTags(TinkerTools.pickadze, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE, STONE_HARVEST);
addToolTags(TinkerTools.excavator, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE);
addToolTags(TinkerTools.mattock, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE, SMALL_TOOLS);
addToolTags(TinkerTools.pickadze, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE, SMALL_TOOLS, STONE_HARVEST);
addToolTags(TinkerTools.excavator, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE, BROAD_TOOLS);
// wood
addToolTags(TinkerTools.handAxe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE_PRIMARY, ONE_HANDED, AOE);
addToolTags(TinkerTools.broadAxe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE_PRIMARY, ONE_HANDED, AOE);
addToolTags(TinkerTools.handAxe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE_PRIMARY, ONE_HANDED, AOE, SMALL_TOOLS);
addToolTags(TinkerTools.broadAxe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE_PRIMARY, ONE_HANDED, AOE, BROAD_TOOLS);
// plants
addToolTags(TinkerTools.kama, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE);
addToolTags(TinkerTools.scythe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE_PRIMARY, ONE_HANDED, AOE);
addToolTags(TinkerTools.kama, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE, ONE_HANDED, AOE, SMALL_TOOLS);
addToolTags(TinkerTools.scythe, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, MELEE_PRIMARY, ONE_HANDED, AOE, BROAD_TOOLS);
// sword
addToolTags(TinkerTools.dagger, MULTIPART_TOOL, DURABILITY, HARVEST, MELEE_PRIMARY, ONE_HANDED, PARRY, UNSALVAGABLE);
addToolTags(TinkerTools.sword, MULTIPART_TOOL, DURABILITY, HARVEST, MELEE_PRIMARY, ONE_HANDED, SWORD, AOE);
addToolTags(TinkerTools.cleaver, MULTIPART_TOOL, DURABILITY, HARVEST, MELEE_PRIMARY, ONE_HANDED, SWORD, AOE);
addToolTags(TinkerTools.dagger, MULTIPART_TOOL, DURABILITY, HARVEST, MELEE_PRIMARY, ONE_HANDED, PARRY, SMALL_TOOLS, UNSALVAGABLE);
addToolTags(TinkerTools.sword, MULTIPART_TOOL, DURABILITY, HARVEST, MELEE_PRIMARY, ONE_HANDED, SWORD, SMALL_TOOLS, AOE);
addToolTags(TinkerTools.cleaver, MULTIPART_TOOL, DURABILITY, HARVEST, MELEE_PRIMARY, ONE_HANDED, SWORD, BROAD_TOOLS, AOE);
// bow
addToolTags(TinkerTools.crossbow, MULTIPART_TOOL, DURABILITY, MELEE, CROSSBOWS, INTERACTABLE_LEFT);
addToolTags(TinkerTools.longbow, MULTIPART_TOOL, DURABILITY, MELEE, LONGBOWS, INTERACTABLE_LEFT);
addToolTags(TinkerTools.crossbow, MULTIPART_TOOL, DURABILITY, MELEE, CROSSBOWS, INTERACTABLE_LEFT, SMALL_TOOLS);
addToolTags(TinkerTools.longbow, MULTIPART_TOOL, DURABILITY, MELEE, LONGBOWS, INTERACTABLE_LEFT, BROAD_TOOLS);
// specialized
addToolTags(TinkerTools.flintAndBrick, DURABILITY, MELEE, ONE_HANDED, AOE);
addToolTags(TinkerTools.flintAndBrick, DURABILITY, MELEE, ONE_HANDED, AOE, SMALL_TOOLS);
addToolTags(TinkerTools.skyStaff, DURABILITY, STAFFS, HELD_ARMOR, INTERACTABLE_DUAL, AOE, DYEABLE, EMBELLISHMENT_METAL);
addToolTags(TinkerTools.earthStaff, DURABILITY, STAFFS, HELD_ARMOR, INTERACTABLE_DUAL, AOE, DYEABLE, EMBELLISHMENT_METAL);
addToolTags(TinkerTools.ichorStaff, DURABILITY, STAFFS, HELD_ARMOR, INTERACTABLE_DUAL, AOE, DYEABLE, EMBELLISHMENT_METAL);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class DuelWieldingModifier extends OffhandAttackModifier {
@Override
public void addToolStats(ToolRebuildContext context, int level, ModifierStatsBuilder builder) {
// on two handed tools, take a larger hit to attack damage, smaller to attack speed
if (context.hasTag(TinkerTags.Items.TWO_HANDED)) {
if (context.hasTag(TinkerTags.Items.BROAD_TOOLS)) {
ToolStats.ATTACK_DAMAGE.multiplyAll(builder, 0.7);
ToolStats.ATTACK_SPEED.multiplyAll(builder, 0.9);
} else {
Expand Down

0 comments on commit 360cd47

Please sign in to comment.