Added Spell of Revealing

This commit is contained in:
Sollace 2019-02-13 22:46:37 +02:00
parent f7dc68b4bd
commit 78cfa7d515
3 changed files with 66 additions and 0 deletions

View file

@ -0,0 +1,10 @@
package com.minelittlepony.unicopia.spell;
public interface ISuppressable extends IMagicEffect {
boolean getSuppressed();
boolean isVulnerable(ICaster<?> otherSource, IMagicEffect other);
void onSuppressed(ICaster<?> otherSource);
}

View file

@ -0,0 +1,53 @@
package com.minelittlepony.unicopia.spell;
import com.minelittlepony.unicopia.UParticles;
import com.minelittlepony.unicopia.particle.Particles;
import com.minelittlepony.util.shape.IShape;
import com.minelittlepony.util.shape.Sphere;
import net.minecraft.init.SoundEvents;
import net.minecraft.util.SoundCategory;
public class SpellReveal extends AbstractSpell {
@Override
public String getName() {
return "reveal";
}
@Override
public int getTint() {
return 0x5CE81F;
}
@Override
public boolean update(ICaster<?> source) {
source.findAllSpellsInRange(15).forEach(e -> {
ISuppressable spell = e.getEffect(ISuppressable.class, false);
if (spell != null && spell.isVulnerable(source, this)) {
spell.onSuppressed(source);
source.getWorld().playSound(null, e.getOrigin(), SoundEvents.ENTITY_ZOMBIE_VILLAGER_CURE, SoundCategory.PLAYERS, 1, 1);
}
});
return true;
}
@Override
public void render(ICaster<?> source) {
IShape area = new Sphere(false, 15);
source.spawnParticles(area, 5, pos -> {
Particles.instance().spawnParticle(UParticles.UNICORN_MAGIC, false, pos, 0, 0, 0);
});
source.spawnParticles(UParticles.UNICORN_MAGIC, 5);
}
@Override
public SpellAffinity getAffinity() {
return SpellAffinity.GOOD;
}
}

View file

@ -44,6 +44,9 @@ spell.portal.tagline=Teleportation I
spell.light.name=Illumination spell.light.name=Illumination
spell.light.tagline=Discovery I spell.light.tagline=Discovery I
spell.reveal.name=Revealing
spell.reveal.tagline=Discovery II
spell.fire.name=Flame spell.fire.name=Flame
spell.fire.tagline=Fire I spell.fire.tagline=Fire I