Move feed ability to the secondary slot for changelings and make the dispell ability available

This commit is contained in:
Sollace 2022-10-13 00:20:06 +02:00
parent b5f41d2244
commit 34065d3919
6 changed files with 26 additions and 14 deletions

View file

@ -47,7 +47,7 @@ public interface Abilities {
// changeling // changeling
Ability<?> DISGUISE = register(new ChangelingDisguiseAbility(), "disguise", AbilitySlot.SECONDARY); 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 // bat
Ability<?> HANG = register(new BatPonyHangAbility(), "hang", AbilitySlot.SECONDARY); Ability<?> HANG = register(new BatPonyHangAbility(), "hang", AbilitySlot.SECONDARY);

View file

@ -41,7 +41,10 @@ public class PegasusFlightToggleAbility implements Ability<Hit> {
@Override @Override
public Identifier getIcon(Pony player, boolean swap) { public Identifier getIcon(Pony player, boolean swap) {
Identifier id = Abilities.REGISTRY.getId(this); 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 @Override

View file

@ -14,6 +14,7 @@ import com.minelittlepony.unicopia.util.TraceHelper;
import com.minelittlepony.unicopia.util.VecHelper; import com.minelittlepony.unicopia.util.VecHelper;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
/** /**
* Dispells an active spell * Dispells an active spell
@ -32,7 +33,13 @@ public class UnicornDispellAbility implements Ability<Pos> {
@Override @Override
public boolean canUse(Race race) { 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 @Override
@ -43,6 +50,7 @@ public class UnicornDispellAbility implements Ability<Pos> {
@Override @Override
public boolean onQuickAction(Pony player, ActivationType type) { public boolean onQuickAction(Pony player, ActivationType type) {
if (player.getSpecies() != Race.CHANGELING) {
if (type.getTapCount() > 1) { if (type.getTapCount() > 1) {
player.setAnimation(Animation.WOLOLO, 10); player.setAnimation(Animation.WOLOLO, 10);
if (player.getSpellSlot().clear()) { if (player.getSpellSlot().clear()) {
@ -57,6 +65,7 @@ public class UnicornDispellAbility implements Ability<Pos> {
InteractionManager.instance().openScreen(InteractionManager.SCREEN_DISPELL_ABILITY); InteractionManager.instance().openScreen(InteractionManager.SCREEN_DISPELL_ABILITY);
return true; return true;
} }
}
return false; return false;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB