Add instant-casting to wizards

This commit is contained in:
libraryaddict 2015-03-25 19:21:20 +13:00
parent 4988b90d0e
commit 853e6420dd
2 changed files with 35 additions and 23 deletions

View File

@ -10,31 +10,39 @@ import org.bukkit.event.inventory.ClickType;
public class SpellButton implements IButton public class SpellButton implements IButton
{ {
private SpellType _spell; private SpellType _spell;
private SpellMenuPage _spellPage; private SpellMenuPage _spellPage;
public SpellButton(SpellMenuPage spellPage, SpellType spell) public SpellButton(SpellMenuPage spellPage, SpellType spell)
{ {
_spell = spell; _spell = spell;
_spellPage = spellPage; _spellPage = spellPage;
} }
@Override @Override
public void onClick(Player player, ClickType clickType) public void onClick(Player player, ClickType clickType)
{ {
Wizard wizard = _spellPage.getWizards().getWizard(player); Wizard wizard = _spellPage.getWizards().getWizard(player);
if (wizard != null) if (wizard != null)
{ {
wizard.setSpell(player.getInventory().getHeldItemSlot(), _spell); if (clickType.isLeftClick())
{
wizard.setSpell(player.getInventory().getHeldItemSlot(), _spell);
player.sendMessage(C.cBlue + "Set spell on wand to " + _spell.getElement().getColor() + _spell.getSpellName()); player.sendMessage(C.cBlue + "Set spell on wand to " + _spell.getElement().getColor() + _spell.getSpellName());
player.playSound(player.getLocation(), Sound.ORB_PICKUP, 10, 1); player.playSound(player.getLocation(), Sound.ORB_PICKUP, 10, 1);
}
else
{
_spellPage.getWizards().castSpell(player, wizard, _spell, null);
}
_spellPage.getWizards().drawUtilTextBottom(player); _spellPage.getWizards().drawUtilTextBottom(player);
_spellPage.getWizards().changeWandsTitles(player); _spellPage.getWizards().changeWandsTitles(player);
} player.closeInventory();
} }
}
} }

View File

@ -73,10 +73,14 @@ public class SpellMenuPage extends ShopPageBase<WizardSpellMenu, WizardSpellMenu
for (String lore : spell.getDesc()) for (String lore : spell.getDesc())
{ {
builder.addLore(C.cGray + lore, 35); builder.addLore(C.cGray + lore, 35);
} }
if (wizard == null) builder.addLore("");
builder.addLore(C.cPurple + C.Bold + "LEFT CLICK" + C.cDGreen + " Bind spell");
builder.addLore(C.cGreen + C.Bold + "RIGHT CLICK" + C.cBlue + " Instant Cast");
if (wizard == null)
{ {
addItem(i, new ShopItem(builder.build(), spell.name(), spell.name(), 1, true, true)); addItem(i, new ShopItem(builder.build(), spell.name(), spell.name(), 1, true, true));
} }