From 934563bc435297e3079d0ac61654f29ec872bf98 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 16 Jan 2021 15:39:07 +0000 Subject: [PATCH] Added boss talisman/ring/relic and changed nether talisman crafting recipe --- .../willfp/talismans/talismans/Talismans.java | 6 +++ .../talismans/talismans/relic/BossRelic.java | 54 +++++++++++++++++++ .../talismans/talismans/ring/BossRing.java | 54 +++++++++++++++++++ .../talismans/talisman/BossTalisman.java | 54 +++++++++++++++++++ .../resources/talismans/relic/bossrelic.yml | 27 ++++++++++ .../resources/talismans/ring/bossring.yml | 27 ++++++++++ .../talismans/talisman/bosstalisman.yml | 27 ++++++++++ .../talismans/talisman/nethertalisman.yml | 16 +++--- 8 files changed, 257 insertions(+), 8 deletions(-) create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/BossRelic.java create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/BossRing.java create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/BossTalisman.java create mode 100644 eco-core/core-plugin/src/main/resources/talismans/relic/bossrelic.yml create mode 100644 eco-core/core-plugin/src/main/resources/talismans/ring/bossring.yml create mode 100644 eco-core/core-plugin/src/main/resources/talismans/talisman/bosstalisman.yml diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java index a1704ec..e241c15 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java @@ -7,6 +7,7 @@ import com.google.common.collect.ImmutableList; import com.willfp.eco.util.config.updating.annotations.ConfigUpdater; import com.willfp.talismans.talismans.talismans.relic.AlchemyRelic; import com.willfp.talismans.talismans.talismans.relic.ArcheryRelic; +import com.willfp.talismans.talismans.talismans.relic.BossRelic; import com.willfp.talismans.talismans.talismans.relic.EndRelic; import com.willfp.talismans.talismans.talismans.relic.ExperienceRelic; import com.willfp.talismans.talismans.talismans.relic.ExtractionRelic; @@ -23,6 +24,7 @@ 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; +import com.willfp.talismans.talismans.talismans.ring.BossRing; import com.willfp.talismans.talismans.talismans.ring.EndRing; import com.willfp.talismans.talismans.talismans.ring.ExperienceRing; import com.willfp.talismans.talismans.talismans.ring.ExtractionRing; @@ -39,6 +41,7 @@ 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; +import com.willfp.talismans.talismans.talismans.talisman.BossTalisman; import com.willfp.talismans.talismans.talismans.talisman.CreeperTalisman; import com.willfp.talismans.talismans.talismans.talisman.EndTalisman; import com.willfp.talismans.talismans.talismans.talisman.ExperienceTalisman; @@ -133,6 +136,9 @@ public class Talismans { public static final Talisman SPEED_TALISMAN = new SpeedTalisman(); public static final Talisman SPEED_RING = new SpeedRing(); public static final Talisman SPEED_RELIC = new SpeedRelic(); + public static final Talisman BOSS_TALISMAN = new BossTalisman(); + public static final Talisman BOSS_RING = new BossRing(); + public static final Talisman BOSS_RELIC = new BossRelic(); /** * Get all registered {@link Talisman}s. diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/BossRelic.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/BossRelic.java new file mode 100644 index 0000000..55f6625 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/BossRelic.java @@ -0,0 +1,54 @@ +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 org.bukkit.entity.Arrow; +import org.bukkit.entity.Boss; +import org.bukkit.entity.Illusioner; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Trident; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.jetbrains.annotations.NotNull; + +public class BossRelic extends Talisman { + public BossRelic() { + super("boss_relic", TalismanStrength.RELIC); + } + + @Override + public void onMeleeAttack(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } + + @Override + public void onArrowDamage(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final Arrow arrow, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } + + @Override + public void onTridentDamage(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final Trident trident, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/BossRing.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/BossRing.java new file mode 100644 index 0000000..ce199cd --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/BossRing.java @@ -0,0 +1,54 @@ +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 org.bukkit.entity.Arrow; +import org.bukkit.entity.Boss; +import org.bukkit.entity.Illusioner; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Trident; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.jetbrains.annotations.NotNull; + +public class BossRing extends Talisman { + public BossRing() { + super("boss_ring", TalismanStrength.RING); + } + + @Override + public void onMeleeAttack(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } + + @Override + public void onArrowDamage(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final Arrow arrow, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } + + @Override + public void onTridentDamage(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final Trident trident, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/BossTalisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/BossTalisman.java new file mode 100644 index 0000000..8e2dd11 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/BossTalisman.java @@ -0,0 +1,54 @@ +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 org.bukkit.entity.Arrow; +import org.bukkit.entity.Boss; +import org.bukkit.entity.Illusioner; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Trident; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.jetbrains.annotations.NotNull; + +public class BossTalisman extends Talisman { + public BossTalisman() { + super("boss_talisman", TalismanStrength.TALISMAN); + } + + @Override + public void onMeleeAttack(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } + + @Override + public void onArrowDamage(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final Arrow arrow, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } + + @Override + public void onTridentDamage(@NotNull final Player attacker, + @NotNull final LivingEntity victim, + @NotNull final Trident trident, + @NotNull final EntityDamageByEntityEvent event) { + if (!(victim instanceof Boss || victim instanceof Illusioner)) { + return; + } + + event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100)); + } +} diff --git a/eco-core/core-plugin/src/main/resources/talismans/relic/bossrelic.yml b/eco-core/core-plugin/src/main/resources/talismans/relic/bossrelic.yml new file mode 100644 index 0000000..d90fd14 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/relic/bossrelic.yml @@ -0,0 +1,27 @@ +name: "Boss Relic" +description: Deal 40% more damage to bosses. +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: + - talismans:boss_ring + - talismans:boss_ring + - talismans:boss_ring + + - talismans:boss_ring + - nether_star + - talismans:boss_ring + + - talismans:boss_ring + - talismans:boss_ring + - talismans:boss_ring + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmE0NjUxZDY2Nzc5MjA4ZGExMDdkNmUyZmZkOTZjNjJlMDY3YzJlNzc1MzA3OWFhYTgzYWNlOGZiNDk4OTUifX19 + +config: + percent-more-damage: 40 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/ring/bossring.yml b/eco-core/core-plugin/src/main/resources/talismans/ring/bossring.yml new file mode 100644 index 0000000..a02f489 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/ring/bossring.yml @@ -0,0 +1,27 @@ +name: "Boss Ring" +description: Deal 25% more damage to bosses. +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: + - talismans:boss_talisman + - talismans:boss_talisman + - talismans:boss_talisman + + - talismans:boss_talisman + - heart_of_the_sea + - talismans:boss_talisman + + - talismans:boss_talisman + - talismans:boss_talisman + - talismans:boss_talisman + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzgzYWI0MmYyMmFkZDkzNjZkODkzNjRiYTNhZTIwMTNmYTQ1YTQ1NWNkODdjYTZhYWQ4MmY0MDFhNzcifX19 + +config: + percent-more-damage: 25 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/talisman/bosstalisman.yml b/eco-core/core-plugin/src/main/resources/talismans/talisman/bosstalisman.yml new file mode 100644 index 0000000..f21b558 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/talisman/bosstalisman.yml @@ -0,0 +1,27 @@ +name: "Boss Talisman" +description: Deal 10% more damage to bosses. +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: + - bell + - wither_skeleton_skull + - bell + + - wither_skeleton_skull + - ender_eye + - wither_skeleton_skull + + - bell + - wither_skeleton_skull + - bell + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTFjZDZkMmQwM2YxMzVlN2M2YjVkNmNkYWUxYjNhNjg3NDNkYjRlYjc0OWZhZjczNDFlOWZiMzQ3YWEyODNiIn19fQ== + +config: + percent-more-damage: 10 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/talisman/nethertalisman.yml b/eco-core/core-plugin/src/main/resources/talismans/talisman/nethertalisman.yml index 377329f..4792ac8 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/talisman/nethertalisman.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/talisman/nethertalisman.yml @@ -6,17 +6,17 @@ 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: - - wither_skeleton_skull - - wither_skeleton_skull - - wither_skeleton_skull + - netherrack + - netherrack + - netherrack - - wither_skeleton_skull + - netherrack - ender_eye - - wither_skeleton_skull + - netherrack - - wither_skeleton_skull - - wither_skeleton_skull - - wither_skeleton_skull + - netherrack + - netherrack + - netherrack general-config: disabled-in-worlds: []