mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-21 09:02:07 -07:00
Converted SummoningTabPlugin to SummoningTabListener
Implemented "Dismiss now" for familiars
This commit is contained in:
parent
b2763a5586
commit
2f38f3dce0
2 changed files with 60 additions and 77 deletions
|
|
@ -1,77 +0,0 @@
|
|||
package core.game.node.entity.skill.summoning;
|
||||
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
import core.game.node.entity.skill.summoning.familiar.BurdenBeast;
|
||||
import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* Represents the component plugin handler for the summoning tab.
|
||||
* @author 'Vexia
|
||||
* @version 1.0
|
||||
*/
|
||||
@Initializable
|
||||
public final class SummoningTabPlugin extends ComponentPlugin {
|
||||
|
||||
@Override
|
||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
ComponentDefinition.put(662, this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) {
|
||||
switch (button) {
|
||||
case 51:
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
player.getFamiliarManager().getFamiliar().call();
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
}
|
||||
break;
|
||||
case 67:
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
if (!player.getFamiliarManager().getFamiliar().isBurdenBeast()) {
|
||||
player.getPacketDispatch().sendMessage("Your familiar is not a beast of burden.");
|
||||
break;
|
||||
}
|
||||
BurdenBeast beast = (BurdenBeast) player.getFamiliarManager().getFamiliar();
|
||||
if (beast.getContainer().isEmpty()) {
|
||||
player.getPacketDispatch().sendMessage("Your familiar is not carrying any items.");
|
||||
break;
|
||||
}
|
||||
beast.withdrawAll();
|
||||
break;
|
||||
}
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
break;
|
||||
case 53:
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
player.getDialogueInterpreter().open("dismiss_dial");
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
}
|
||||
break;
|
||||
case 113:
|
||||
case 101:
|
||||
case 117:
|
||||
case 163:
|
||||
case 151:
|
||||
case 83:
|
||||
case 75:
|
||||
default:
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
player.getFamiliarManager().getFamiliar().executeSpecialMove(new FamiliarSpecial(player));
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
import core.game.component.Component
|
||||
import core.game.component.ComponentDefinition
|
||||
import core.game.node.entity.skill.summoning.familiar.BurdenBeast
|
||||
import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial
|
||||
import core.game.node.entity.player.Player
|
||||
import rs09.game.interaction.InterfaceListener
|
||||
|
||||
class SummoningTabListener : InterfaceListener {
|
||||
override fun defineInterfaceListeners() {
|
||||
on(662) { player, _, opcode, buttonID, _, _ ->
|
||||
when(buttonID) {
|
||||
51 -> {
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
player.getFamiliarManager().getFamiliar().call()
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.")
|
||||
}
|
||||
}
|
||||
67 -> {
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
if (!player.getFamiliarManager().getFamiliar().isBurdenBeast()) {
|
||||
player.getPacketDispatch().sendMessage("Your familiar is not a beast of burden.")
|
||||
return@on true
|
||||
}
|
||||
val beast = player.getFamiliarManager().getFamiliar() as BurdenBeast;
|
||||
if (beast.getContainer().isEmpty()) {
|
||||
player.getPacketDispatch().sendMessage("Your familiar is not carrying any items.")
|
||||
return@on true
|
||||
}
|
||||
beast.withdrawAll();
|
||||
return@on true
|
||||
}
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
}
|
||||
53 -> {
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
if(opcode == 155) {
|
||||
// Dismiss familiar
|
||||
player.getDialogueInterpreter().open("dismiss_dial");
|
||||
} else if(opcode == 196) {
|
||||
// Dismiss now
|
||||
player.getFamiliarManager().dismiss(false);
|
||||
}
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
if (player.getFamiliarManager().hasFamiliar()) {
|
||||
player.getFamiliarManager().getFamiliar().executeSpecialMove(FamiliarSpecial(player));
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You don't have a follower.");
|
||||
}
|
||||
}
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue