58 lines
1.7 KiB
Java
58 lines
1.7 KiB
Java
package electroblob.wizardry.enchantment;
|
|
|
|
import net.minecraft.enchantment.Enchantment;
|
|
import net.minecraft.enchantment.EnchantmentDamage;
|
|
import net.minecraft.entity.EnumCreatureAttribute;
|
|
import net.minecraft.inventory.EntityEquipmentSlot;
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
// This one is for imbued swords. The only reason this is separate is that the way vanilla is written allows me to hook
|
|
// into the damage increase for melee weapons, meaning I don't have to use events - always handy!
|
|
public class EnchantmentMagicSword extends EnchantmentDamage implements Imbuement {
|
|
|
|
public EnchantmentMagicSword(){
|
|
super(Enchantment.Rarity.COMMON, 0, EntityEquipmentSlot.MAINHAND);
|
|
// Setting this to null stops the book appearing in the creative inventory
|
|
this.type = null;
|
|
}
|
|
|
|
@Override
|
|
public boolean canApply(ItemStack p_92089_1_){
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Returns the maximum level that the enchantment can have.
|
|
*/
|
|
// Here, enchantment level is the damage multiplier of the spell used to apply the enchantment, i.e. with an
|
|
// non-sorcerer wand it is level 1, a basic sorcerer wand is level 2, and so on. Note that basic sorcerer wands
|
|
// can't
|
|
// cast the imbue weapon spell, so level 2 is actually for apprentice wands.
|
|
@Override
|
|
public int getMaxLevel(){
|
|
return 4;
|
|
}
|
|
|
|
// Returns the number by which the damage should be increased (or something)
|
|
@Override
|
|
public float calcDamageByCreature(int p_152376_1_, EnumCreatureAttribute p_152376_2_){
|
|
return (float)p_152376_1_ * 1.25F;
|
|
}
|
|
|
|
@Override
|
|
public String getName(){
|
|
return "enchantment." + this.getRegistryName();
|
|
}
|
|
|
|
@Override
|
|
public boolean isAllowedOnBooks(){
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean canApplyAtEnchantingTable(ItemStack stack){
|
|
return false;
|
|
}
|
|
|
|
}
|