diff --git a/src/main/java/electroblob/wizardry/registry/WizardryItems.java b/src/main/java/electroblob/wizardry/registry/WizardryItems.java index 5b6a951a..2980fde1 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryItems.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryItems.java @@ -220,6 +220,7 @@ public final class WizardryItems { public static final Item ring_fire_melee = placeholder(); public static final Item ring_fire_biome = placeholder(); public static final Item ring_disintegration = placeholder(); + public static final Item ring_meteor = placeholder(); public static final Item ring_ice_melee = placeholder(); public static final Item ring_ice_biome = placeholder(); public static final Item ring_arcane_frost = placeholder(); @@ -588,6 +589,7 @@ public final class WizardryItems { registerItem(registry, "ring_fire_melee", new ItemArtefact(EnumRarity.UNCOMMON, ItemArtefact.Type.RING)); registerItem(registry, "ring_fire_biome", new ItemArtefact(EnumRarity.UNCOMMON, ItemArtefact.Type.RING)); registerItem(registry, "ring_disintegration", new ItemArtefact(EnumRarity.RARE, ItemArtefact.Type.RING)); + registerItem(registry, "ring_meteor", new ItemArtefact(EnumRarity.EPIC, ItemArtefact.Type.RING)); registerItem(registry, "ring_ice_melee", new ItemArtefact(EnumRarity.UNCOMMON, ItemArtefact.Type.RING)); registerItem(registry, "ring_ice_biome", new ItemArtefact(EnumRarity.UNCOMMON, ItemArtefact.Type.RING)); registerItem(registry, "ring_arcane_frost", new ItemArtefact(EnumRarity.EPIC, ItemArtefact.Type.RING)); diff --git a/src/main/java/electroblob/wizardry/spell/Meteor.java b/src/main/java/electroblob/wizardry/spell/Meteor.java index 5fcf70fb..f00ab1ad 100644 --- a/src/main/java/electroblob/wizardry/spell/Meteor.java +++ b/src/main/java/electroblob/wizardry/spell/Meteor.java @@ -1,13 +1,16 @@ package electroblob.wizardry.spell; import electroblob.wizardry.entity.EntityMeteor; +import electroblob.wizardry.item.ItemArtefact; import electroblob.wizardry.item.SpellActions; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.util.EntityUtils; import electroblob.wizardry.util.SpellModifiers; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; @@ -24,6 +27,32 @@ public class Meteor extends SpellRay { addProperties(BLAST_STRENGTH); } + @Override + public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){ + + if(ItemArtefact.isArtefactActive(caster, WizardryItems.ring_meteor)){ + + if(!world.isRemote){ + + EntityMeteor meteor = new EntityMeteor(world, caster.posX, caster.posY + caster.getEyeHeight(), caster.posZ, + modifiers.get(WizardryItems.blast_upgrade), EntityUtils.canDamageBlocks(caster, world)); + + Vec3d direction = caster.getLookVec().scale(2 * modifiers.get(WizardryItems.range_upgrade)); + meteor.motionX = direction.x; + meteor.motionY = direction.y; + meteor.motionZ = direction.z; + + world.spawnEntity(meteor); + } + + this.playSound(world, caster, ticksInUse, -1, modifiers); + return true; + + }else{ + return super.cast(world, caster, hand, ticksInUse, modifiers); + } + } + @Override public boolean requiresPacket(){ return false; } @Override diff --git a/src/main/resources/assets/ebwizardry/lang/en_gb.lang b/src/main/resources/assets/ebwizardry/lang/en_gb.lang index a7ba36b7..ccf6a7d9 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_gb.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_gb.lang @@ -281,6 +281,8 @@ item.ebwizardry\:ring_fire_biome.name=Ring of the Desert Sun item.ebwizardry\:ring_fire_biome.desc=Fire spells are 30%% more potent in hot biomes item.ebwizardry\:ring_disintegration.name=Ring of Searing Embers item.ebwizardry\:ring_disintegration.desc=All fire attack spells cause their victims to disintegrate +item.ebwizardry\:ring_meteor.name=Ring of Volthraa +item.ebwizardry\:ring_meteor.desc=Instead of falling from the sky, meteor can be aimed like a projectile item.ebwizardry\:ring_ice_melee.name=Ring of Icy Touch item.ebwizardry\:ring_ice_melee.desc=Hitting a creature with an ice wand gives it the frostbite effect item.ebwizardry\:ring_ice_biome.name=Ring of Glaciation diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index 8b1a4861..18b344dd 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -281,6 +281,8 @@ item.ebwizardry\:ring_fire_biome.name=Ring of the Desert Sun item.ebwizardry\:ring_fire_biome.desc=Fire spells are 30%% more potent in hot biomes item.ebwizardry\:ring_disintegration.name=Ring of Searing Embers item.ebwizardry\:ring_disintegration.desc=All fire attack spells cause their victims to disintegrate +item.ebwizardry\:ring_meteor.name=Ring of Volthraa +item.ebwizardry\:ring_meteor.desc=Instead of falling from the sky, meteor can be aimed like a projectile item.ebwizardry\:ring_ice_melee.name=Ring of Icy Touch item.ebwizardry\:ring_ice_melee.desc=Hitting a creature with an ice wand gives it the frostbite effect item.ebwizardry\:ring_ice_biome.name=Ring of Glaciation diff --git a/src/main/resources/assets/ebwizardry/models/item/ring_meteor.json b/src/main/resources/assets/ebwizardry/models/item/ring_meteor.json new file mode 100644 index 00000000..2d73ca47 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/models/item/ring_meteor.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ebwizardry:items/ring_meteor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/items/ring_meteor.png b/src/main/resources/assets/ebwizardry/textures/items/ring_meteor.png new file mode 100644 index 00000000..b32fab84 Binary files /dev/null and b/src/main/resources/assets/ebwizardry/textures/items/ring_meteor.png differ