aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java
blob: 69919fe3966f45a4d2ade0563ff1c9c26e2432e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package gregtech.api.enchants;

import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.enchantment.EnchantmentDamage;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;

public class Enchantment_EnderDamage extends EnchantmentDamage {
	public static Enchantment_EnderDamage INSTANCE;
	
	public Enchantment_EnderDamage() {
		super(GT_Config.addIDConfig(ConfigCategories.IDs.enchantments, "Disjunction", 15), 2, -1);
		GT_LanguageManager.addStringLocalization(getName(), "Disjunction");
		Materials.Silver			.setEnchantmentForTools(this, 2);
		Materials.Mercury			.setEnchantmentForTools(this, 3);
		Materials.Electrum			.setEnchantmentForTools(this, 3);
		Materials.SterlingSilver	.setEnchantmentForTools(this, 4);
		Materials.AstralSilver		.setEnchantmentForTools(this, 5);
		INSTANCE = this;
	}
	
    @Override
	public int getMinEnchantability(int aLevel) {
        return 5 + (aLevel - 1) * 8;
    }
    
    @Override
	public int getMaxEnchantability(int aLevel) {
        return this.getMinEnchantability(aLevel) + 20;
    }
    
    @Override
	public int getMaxLevel() {
        return 5;
    }
    
    @Override
	public void func_151367_b(EntityLivingBase aHurtEntity, Entity aDamagingEntity, int aLevel) {
        if ((aHurtEntity instanceof EntityEnderman || aHurtEntity instanceof EntityDragon || (aHurtEntity.getClass().getName().indexOf(".") >= 0 && aHurtEntity.getClass().getName().substring(aHurtEntity.getClass().getName().lastIndexOf(".")).contains("Ender")))) {
        	// Weakness causes Endermen to not be able to teleport with GT being installed.
        	aHurtEntity.addPotionEffect(new PotionEffect(Potion.weakness.id	, aLevel * 200, Math.max(1, (5*aLevel) / 7)));
        	// They also get Poisoned. If you have this Enchant on an Arrow, you can kill the Ender Dragon easier.
        	aHurtEntity.addPotionEffect(new PotionEffect(Potion.poison.id	, aLevel * 200, Math.max(1, (5*aLevel) / 7)));
        }
    }
    
    @Override
	public String getName() {
        return "enchantment.damage.endermen";
    }
}