diff --git a/src/main/java/com/minelittlepony/unicopia/ability/PegasusRainboomAbility.java b/src/main/java/com/minelittlepony/unicopia/ability/PegasusRainboomAbility.java index 188ac64c..5269e96a 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/PegasusRainboomAbility.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/PegasusRainboomAbility.java @@ -54,7 +54,7 @@ public class PegasusRainboomAbility implements Ability { @Override public double getCostEstimate(Pony player) { - return player.getMagicalReserves().getMana().getMax() * 0.9F; + return 90F; } @Override @@ -76,7 +76,7 @@ public class PegasusRainboomAbility implements Ability { } if (player.getPhysics().isFlying() && !SpellType.RAINBOOM.isOn(player)) { - player.getMagicalReserves().getMana().multiply(0.1F); + player.subtractEnergyCost(9); player.addParticle(new OrientedBillboardParticleEffect(UParticles.RAINBOOM_RING, player.getPhysics().getMotionAngle()), player.getOriginVector(), Vec3d.ZERO); SpellType.RAINBOOM.withTraits().apply(player); } diff --git a/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java b/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java index 4e2755d4..f809b6ed 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java @@ -3,6 +3,7 @@ package com.minelittlepony.unicopia.ability.magic.spell; import com.minelittlepony.unicopia.UTags; import com.minelittlepony.unicopia.ability.magic.Caster; import com.minelittlepony.unicopia.ability.magic.spell.effect.*; +import com.minelittlepony.unicopia.block.data.ModificationType; import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.particle.OrientedBillboardParticleEffect; import com.minelittlepony.unicopia.particle.ParticleHandle; @@ -13,11 +14,8 @@ import com.minelittlepony.unicopia.util.shape.Sphere; import net.minecraft.block.BlockState; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.NbtCompound; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; -import net.minecraft.world.GameRules; /** * Internal. @@ -54,7 +52,8 @@ public class RainboomAbilitySpell extends AbstractSpell { particlEffect.update(getUuid(), source, spawner -> { spawner.addParticle(UParticles.RAINBOOM_TRAIL, source.getOriginVector(), Vec3d.ZERO); }); - source.addParticle(new OrientedBillboardParticleEffect(UParticles.RAINBOOM_RING, source.getPhysics().getMotionAngle()), source.getOriginVector(), Vec3d.ZERO); + + // source.addParticle(new OrientedBillboardParticleEffect(UParticles.RAINBOOM_RING, source.getPhysics().getMotionAngle()), source.getOriginVector(), Vec3d.ZERO); } LivingEntity owner = source.getMaster(); @@ -68,7 +67,7 @@ public class RainboomAbilitySpell extends AbstractSpell { }); EFFECT_RANGE.translate(source.getOrigin()).getBlockPositions().forEach(pos -> { BlockState state = source.getReferenceWorld().getBlockState(pos); - if (state.isIn(UTags.FRAGILE) && canBreak(pos, owner)) { + if (state.isIn(UTags.FRAGILE) && source.canModifyAt(pos, ModificationType.PHYSICAL)) { owner.world.breakBlock(pos, true); } }); @@ -81,22 +80,13 @@ public class RainboomAbilitySpell extends AbstractSpell { } source.getEntity().setVelocity(velocity); - if (source instanceof Pony) { - ((Pony)source).getMagicalReserves().getExhaustion().multiply(0.2F); + if (source instanceof Pony pony) { + pony.getMagicalReserves().getExhaustion().multiply(0.2F); } return !source.getEntity().isRemoved() && age++ < 90 + 7 * source.getLevel().getScaled(9); } - private boolean canBreak(BlockPos pos, LivingEntity entity) { - - if (entity instanceof PlayerEntity) { - return entity.world.canPlayerModifyAt((PlayerEntity)entity, pos); - } - - return entity.world.getGameRules().getBoolean(GameRules.DO_MOB_GRIEFING); - } - @Override public void toNBT(NbtCompound compound) { super.toNBT(compound);