From 8bd9f1823dfb7a4c51fd46883b6d2faf91dc16f7 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 30 Sep 2020 07:26:24 +0100 Subject: [PATCH] Added backstab --- .../ecoenchants/enchantments/EcoEnchants.java | 1 + .../ecoenchants/normal/Backstab.java | 33 +++++++++++++++++++ .../resources/enchants/normal/backstab.yml | 26 +++++++++++++++ .../resources/enchants/normal/dexterous.yml | 2 +- .../resources/enchants/normal/firststrike.yml | 2 +- 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Backstab.java create mode 100644 Plugin/src/main/resources/enchants/normal/backstab.yml diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java index ae7afb0d..f2e566ff 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java @@ -228,6 +228,7 @@ public class EcoEnchants { public static final EcoEnchant INACCURACY_CURSE = new InaccuracyCurse(); public static final EcoEnchant RESPIRATOR = new Respirator(); public static final EcoEnchant FETCHING = new Fetching(); + public static final EcoEnchant BACKSTAB = new Backstab(); /** * Get all registered {@link EcoEnchant}s diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Backstab.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Backstab.java new file mode 100644 index 00000000..562154ec --- /dev/null +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Backstab.java @@ -0,0 +1,33 @@ +package com.willfp.ecoenchants.enchantments.ecoenchants.normal; + +import com.willfp.ecoenchants.enchantments.EcoEnchant; +import com.willfp.ecoenchants.enchantments.EcoEnchantBuilder; +import com.willfp.ecoenchants.enchantments.EcoEnchants; +import org.bukkit.entity.Creeper; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.util.Vector; + +public class Backstab extends EcoEnchant { + public Backstab() { + super( + new EcoEnchantBuilder("backstab", EnchantmentType.NORMAL,5.0) + ); + } + + // START OF LISTENERS + + + @Override + public void onMeleeAttack(LivingEntity attacker, LivingEntity victim, int level, EntityDamageByEntityEvent event) { + Vector victimLoc = victim.getLocation().toVector(); + Vector attackerLoc = attacker.getLocation().toVector(); + Vector locationDelta = victimLoc.subtract(attackerLoc); + Vector attackerDirection = attacker.getLocation().getDirection(); + double dot = locationDelta.dot(attackerDirection); + + if(dot > 0) return; + + event.setDamage(event.getDamage() * ((level * this.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "damage-multiplier-per-level")) + 1)); + } +} diff --git a/Plugin/src/main/resources/enchants/normal/backstab.yml b/Plugin/src/main/resources/enchants/normal/backstab.yml new file mode 100644 index 00000000..8daecd9b --- /dev/null +++ b/Plugin/src/main/resources/enchants/normal/backstab.yml @@ -0,0 +1,26 @@ +# +# Backstab EcoEnchant +# + +config-version: 5.0 # Don't edit this. + +name: "Backstab" +description: Increases damage when behind opponent +enabled: true + +obtaining: + table: true + villager: true + loot: true + rarity: epic + +general-config: + targets: + - sword + - axe + grindstoneable: true + conflicts: [] + maximum-level: 3 + +config: + damage-multiplier-per-level: 0.1 \ No newline at end of file diff --git a/Plugin/src/main/resources/enchants/normal/dexterous.yml b/Plugin/src/main/resources/enchants/normal/dexterous.yml index 0acfbc1a..ecb26644 100644 --- a/Plugin/src/main/resources/enchants/normal/dexterous.yml +++ b/Plugin/src/main/resources/enchants/normal/dexterous.yml @@ -12,7 +12,7 @@ obtaining: table: true villager: true loot: true - rarity: legendary + rarity: epic general-config: targets: diff --git a/Plugin/src/main/resources/enchants/normal/firststrike.yml b/Plugin/src/main/resources/enchants/normal/firststrike.yml index 2330e166..7db674b2 100644 --- a/Plugin/src/main/resources/enchants/normal/firststrike.yml +++ b/Plugin/src/main/resources/enchants/normal/firststrike.yml @@ -22,4 +22,4 @@ general-config: maximum-level: 5 config: - damage-multiplier-per-level: 0.05 \ No newline at end of file + damage-multiplier-per-level: 0.15 \ No newline at end of file