Added speed relic/ring

This commit is contained in:
Auxilor
2021-01-07 13:04:03 +00:00
parent a6428a40f8
commit bbbbfed5ac
6 changed files with 183 additions and 6 deletions

View File

@@ -19,6 +19,7 @@ import com.willfp.talismans.talismans.talismans.relic.PoseidonRelic;
import com.willfp.talismans.talismans.talismans.relic.RaidRelic;
import com.willfp.talismans.talismans.talismans.relic.ResistanceRelic;
import com.willfp.talismans.talismans.talismans.relic.SharpnessRelic;
import com.willfp.talismans.talismans.talismans.relic.SpeedRelic;
import com.willfp.talismans.talismans.talismans.relic.StrengthRelic;
import com.willfp.talismans.talismans.talismans.ring.AlchemyRing;
import com.willfp.talismans.talismans.talismans.ring.ArcheryRing;
@@ -34,6 +35,7 @@ import com.willfp.talismans.talismans.talismans.ring.PoseidonRing;
import com.willfp.talismans.talismans.talismans.ring.RaidRing;
import com.willfp.talismans.talismans.talismans.ring.ResistanceRing;
import com.willfp.talismans.talismans.talismans.ring.SharpnessRing;
import com.willfp.talismans.talismans.talismans.ring.SpeedRing;
import com.willfp.talismans.talismans.talismans.ring.StrengthRing;
import com.willfp.talismans.talismans.talismans.talisman.AlchemyTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ArcheryTalisman;
@@ -129,6 +131,8 @@ public class Talismans {
public static final Talisman HEALING_RING = new HealingRing();
public static final Talisman HEALING_RELIC = new HealingRelic();
public static final Talisman SPEED_TALISMAN = new SpeedTalisman();
public static final Talisman SPEED_RING = new SpeedRing();
public static final Talisman SPEED_RELIC = new SpeedRelic();
/**

View File

@@ -0,0 +1,53 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.equipevent.EquipType;
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class SpeedRelic extends Talisman {
private static final UUID MODIFIER_UUID = UUID.randomUUID();
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_relic", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
public SpeedRelic() {
super("speed_relic", TalismanStrength.RELIC);
}
@Override
protected void postUpdate() {
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_relic", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
}
@EventHandler
public void onExpChange(@NotNull final TalismanEquipEvent event) {
Player player = event.getPlayer();
if (!event.getTalisman().equals(this)) {
return;
}
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
assert movementSpeed != null;
if (event.getType() == EquipType.EQUIP) {
if (this.getDisabledWorlds().contains(player.getWorld())) {
movementSpeed.removeModifier(MODIFIER);
} else {
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
movementSpeed.addModifier(MODIFIER);
}
}
} else {
movementSpeed.removeModifier(MODIFIER);
}
}
}

View File

@@ -0,0 +1,53 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.equipevent.EquipType;
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class SpeedRing extends Talisman {
private static final UUID MODIFIER_UUID = UUID.randomUUID();
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_ring", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
public SpeedRing() {
super("speed_ring", TalismanStrength.RING);
}
@Override
protected void postUpdate() {
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_ring", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
}
@EventHandler
public void onExpChange(@NotNull final TalismanEquipEvent event) {
Player player = event.getPlayer();
if (!event.getTalisman().equals(this)) {
return;
}
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
assert movementSpeed != null;
if (event.getType() == EquipType.EQUIP) {
if (this.getDisabledWorlds().contains(player.getWorld())) {
movementSpeed.removeModifier(MODIFIER);
} else {
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
movementSpeed.addModifier(MODIFIER);
}
}
} else {
movementSpeed.removeModifier(MODIFIER);
}
}
}

View File

@@ -1,23 +1,32 @@
package com.willfp.talismans.talismans.talismans.talisman;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.equipevent.EquipType;
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class SpeedTalisman extends Talisman {
private static final AttributeModifier MODIFIER = new AttributeModifier("speed_talisman", 0.2, AttributeModifier.Operation.ADD_NUMBER);
private static final UUID MODIFIER_UUID = UUID.randomUUID();
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
public SpeedTalisman() {
super("speed_talisman", TalismanStrength.TALISMAN);
}
@Override
protected void postUpdate() {
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
}
@EventHandler
public void onExpChange(@NotNull final TalismanEquipEvent event) {
Player player = event.getPlayer();
@@ -26,15 +35,19 @@ public class SpeedTalisman extends Talisman {
return;
}
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
assert movementSpeed != null;
if (event.getType() == EquipType.EQUIP) {
if (this.getDisabledWorlds().contains(player.getWorld())) {
player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).removeModifier(MODIFIER);
movementSpeed.removeModifier(MODIFIER);
} else {
player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).addModifier(MODIFIER);
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
movementSpeed.addModifier(MODIFIER);
}
}
} else {
Bukkit.getLogger().info("bruh");
player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).removeModifier(MODIFIER);
movementSpeed.removeModifier(MODIFIER);
}
}
}

View File

@@ -0,0 +1,27 @@
name: "Speed Relic"
description: Move 25% faster.
enabled: true
obtaining:
# Recipes are left-right, top-bottom
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
recipe:
- talisman:speed_ring
- talisman:speed_ring
- talisman:speed_ring
- talisman:speed_ring
- nether_star
- talisman:speed_ring
- talisman:speed_ring
- talisman:speed_ring
- talisman:speed_ring
general-config:
disabled-in-worlds: []
# Texture is base64, https://minecraft-heads.com has a list of skulls.
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDRiYTRhYjRmOTNiODJlNjE0MTI4OTgwMWMzOWUwYmMyNzBjYmU1MTc5ZGY3NmU4NWI1NDMwNmMyNzhjMTdkYSJ9fX0=
config:
percentage-bonus: 25

View File

@@ -0,0 +1,27 @@
name: "Speed Ring"
description: Move 10% faster.
enabled: true
obtaining:
# Recipes are left-right, top-bottom
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
recipe:
- talisman:speed_talisman
- talisman:speed_talisman
- talisman:speed_talisman
- talisman:speed_talisman
- heart_of_the_sea
- talisman:speed_talisman
- talisman:speed_talisman
- talisman:speed_talisman
- talisman:speed_talisman
general-config:
disabled-in-worlds: []
# Texture is base64, https://minecraft-heads.com has a list of skulls.
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTNjZTc2NjAyZDNmZWM3YzAyNzNkYTYwMDA5MDA3YmU0MTQwYWM5ZmFjMDM0MTQ1MGMwNzU3ZTUzZDc1MTU3NyJ9fX0=
config:
percentage-bonus: 10