Added Backstab

This commit is contained in:
Auxilor
2020-10-14 18:50:16 +01:00
parent cd525553ac
commit 9cc3a79783
4 changed files with 68 additions and 63 deletions

View File

@@ -1,69 +1,9 @@
package com.willfp.ecoenchants.enchantments;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.AshArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.CloudsArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.CrimsonArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.DamageArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.DragonArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.DustArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.EmeraldArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.EnchantmentArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.EndArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.FireArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.HeartArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.HoneyArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.InkArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.LavaArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.LimeArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.MagicArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.MagmaArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.MusicArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.NetherArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.RedstoneArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.SmokeArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.SnowArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.SoulArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.SoulFireArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.SparkleArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.TearArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.TotemArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.WarpedArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.WaterArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.WitchArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.ZapArtifact;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.BreaklessnessCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.CallingCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.DecayCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.FragilityCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.HarmlessnessCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.HungerCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.InaccuracyCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.MisfortuneCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.PermanenceCurse;
import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.*;
import com.willfp.ecoenchants.enchantments.ecoenchants.curse.*;
import com.willfp.ecoenchants.enchantments.ecoenchants.normal.*;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Aiming;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Annihilate;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Bladed;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Bolt;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Carve;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Confusion;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Energizing;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Force;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Frenzy;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Harpoon;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Indestructibility;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Instability;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Intellect;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.LifeSteal;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Pentashot;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Preservation;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Prosperity;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Razor;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Repairing;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Soulbound;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Spring;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Streamlining;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.Volatile;
import com.willfp.ecoenchants.enchantments.ecoenchants.special.*;
import org.bukkit.NamespacedKey;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
@@ -294,6 +234,7 @@ public class EcoEnchants {
public static final EcoEnchant ASH_ARTIFACT = new AshArtifact();
public static final EcoEnchant WARPED_ARTIFACT = new WarpedArtifact();
public static final EcoEnchant TEAR_ARTIFACT = new TearArtifact();
public static final EcoEnchant BACKSTAB = new Backstab();
/**
* Get all registered {@link EcoEnchant}s

View File

@@ -0,0 +1,34 @@
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.LivingEntity;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.util.Vector;
public final 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 pDir = attacker.getLocation().getDirection();
Vector eDir = victim.getLocation().getDirection();
double xv = pDir.getX() * eDir.getZ() - pDir.getZ() * eDir.getX();
double zv = pDir.getX() * eDir.getX() + pDir.getZ() * eDir.getZ();
double angle = Math.atan2(xv, zv); // Value between -π and +π
double angleInDegrees = (angle * 180) / Math.PI;
if(angleInDegrees > 60 || angleInDegrees < -32)
return;
event.setDamage(event.getDamage() * ((level * this.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "damage-multiplier-per-level")) + 1));
}
}