Remove the active spell when applying the race change potion effect

This commit is contained in:
Sollace 2020-10-09 17:44:14 +02:00
parent 7e19fd08c5
commit dd294f4f86

View file

@ -3,8 +3,8 @@ package com.minelittlepony.unicopia.entity.effect;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.Race;
import com.minelittlepony.unicopia.ability.magic.Caster;
import com.minelittlepony.unicopia.entity.Equine; import com.minelittlepony.unicopia.entity.Equine;
import com.minelittlepony.unicopia.entity.PonyContainer;
import com.minelittlepony.unicopia.entity.player.MagicReserves; import com.minelittlepony.unicopia.entity.player.MagicReserves;
import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.entity.player.Pony;
import com.minelittlepony.unicopia.util.MagicalDamageSource; import com.minelittlepony.unicopia.util.MagicalDamageSource;
@ -100,12 +100,15 @@ public class RaceChangeStatusEffect extends StatusEffect {
} }
if (stage == Stage.DEATH) { if (stage == Stage.DEATH) {
PonyContainer.of(entity).map(PonyContainer::get).ifPresent(e -> {
e.setSpecies(species); eq.setSpecies(species);
if (e instanceof Pony) { if (eq instanceof Caster) {
((Pony)e).setDirty(); ((Caster<?>)eq).setSpell(null);
} }
});
if (eq instanceof Pony) {
((Pony)eq).setDirty();
}
entity.damage(MagicalDamageSource.TRIBE_SWAP, Float.MAX_VALUE); entity.damage(MagicalDamageSource.TRIBE_SWAP, Float.MAX_VALUE);
} }
} }