diff --git a/src/main/java/com/minelittlepony/unicopia/ability/Abilities.java b/src/main/java/com/minelittlepony/unicopia/ability/Abilities.java index 666173d3..79cf5348 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/Abilities.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/Abilities.java @@ -47,7 +47,7 @@ public interface Abilities { // changeling Ability DISGUISE = register(new ChangelingDisguiseAbility(), "disguise", AbilitySlot.SECONDARY); - Ability FEED = register(new ChangelingFeedAbility(), "feed", AbilitySlot.TERTIARY); + Ability FEED = register(new ChangelingFeedAbility(), "feed", AbilitySlot.SECONDARY); // bat Ability HANG = register(new BatPonyHangAbility(), "hang", AbilitySlot.SECONDARY); diff --git a/src/main/java/com/minelittlepony/unicopia/ability/PegasusFlightToggleAbility.java b/src/main/java/com/minelittlepony/unicopia/ability/PegasusFlightToggleAbility.java index 60646c3f..152b081d 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/PegasusFlightToggleAbility.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/PegasusFlightToggleAbility.java @@ -41,7 +41,10 @@ public class PegasusFlightToggleAbility implements Ability { @Override public Identifier getIcon(Pony player, boolean swap) { Identifier id = Abilities.REGISTRY.getId(this); - return new Identifier(id.getNamespace(), "textures/gui/ability/" + id.getPath() + (player.getPhysics().isFlying() ? "_land" : "_takeoff") + ".png"); + return new Identifier(id.getNamespace(), "textures/gui/ability/" + id.getPath() + + (player.getPhysics().isFlying() ? "_land" : "_takeoff") + + (player.getSpecies() == Race.CHANGELING ? "_changeling" : "") + + ".png"); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/ability/UnicornDispellAbility.java b/src/main/java/com/minelittlepony/unicopia/ability/UnicornDispellAbility.java index a9895576..310cd92d 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/UnicornDispellAbility.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/UnicornDispellAbility.java @@ -14,6 +14,7 @@ import com.minelittlepony.unicopia.util.TraceHelper; import com.minelittlepony.unicopia.util.VecHelper; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; /** * Dispells an active spell @@ -32,7 +33,13 @@ public class UnicornDispellAbility implements Ability { @Override public boolean canUse(Race race) { - return race.canCast(); + return race.canCast() || race == Race.CHANGELING; + } + + @Override + public Identifier getIcon(Pony player, boolean swap) { + Identifier id = Abilities.REGISTRY.getId(this); + return new Identifier(id.getNamespace(), "textures/gui/ability/" + id.getPath() + (player.getSpecies() == Race.CHANGELING ? "_changeling" : "") + ".png"); } @Override @@ -43,19 +50,21 @@ public class UnicornDispellAbility implements Ability { @Override public boolean onQuickAction(Pony player, ActivationType type) { - if (type.getTapCount() > 1) { - player.setAnimation(Animation.WOLOLO, 10); - if (player.getSpellSlot().clear()) { - player.getMaster().sendMessage(Text.translatable("gui.unicopia.action.spells_cleared"), true); - } else { - player.getMaster().sendMessage(Text.translatable("gui.unicopia.action.no_spells_cleared"), true); + if (player.getSpecies() != Race.CHANGELING) { + if (type.getTapCount() > 1) { + player.setAnimation(Animation.WOLOLO, 10); + if (player.getSpellSlot().clear()) { + player.getMaster().sendMessage(Text.translatable("gui.unicopia.action.spells_cleared"), true); + } else { + player.getMaster().sendMessage(Text.translatable("gui.unicopia.action.no_spells_cleared"), true); + } + return true; } - return true; - } - if (type == ActivationType.TAP && player.isClient()) { - InteractionManager.instance().openScreen(InteractionManager.SCREEN_DISPELL_ABILITY); - return true; + if (type == ActivationType.TAP && player.isClient()) { + InteractionManager.instance().openScreen(InteractionManager.SCREEN_DISPELL_ABILITY); + return true; + } } return false; diff --git a/src/main/resources/assets/unicopia/textures/gui/ability/dispell_changeling.png b/src/main/resources/assets/unicopia/textures/gui/ability/dispell_changeling.png new file mode 100644 index 00000000..730f239b Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/gui/ability/dispell_changeling.png differ diff --git a/src/main/resources/assets/unicopia/textures/gui/ability/toggle_flight_land_changeling.png b/src/main/resources/assets/unicopia/textures/gui/ability/toggle_flight_land_changeling.png new file mode 100644 index 00000000..05ed8d37 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/gui/ability/toggle_flight_land_changeling.png differ diff --git a/src/main/resources/assets/unicopia/textures/gui/ability/toggle_flight_takeoff_changeling.png b/src/main/resources/assets/unicopia/textures/gui/ability/toggle_flight_takeoff_changeling.png new file mode 100644 index 00000000..cdabb158 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/gui/ability/toggle_flight_takeoff_changeling.png differ