RuneHive-Game
Loading...
Searching...
No Matches
MimeEvent.java
Go to the documentation of this file.
1package com.runehive.content.activity.randomevent.impl;
2
3import com.runehive.net.packet.out.SendMessage;
4import com.runehive.game.Animation;
5import com.runehive.game.world.entity.mob.player.Player;
6import com.runehive.game.world.entity.mob.player.appearance.Gender;
7import com.runehive.content.activity.randomevent.RandomEvent;
8import com.runehive.content.event.impl.NpcInteractionEvent;
9import com.runehive.game.world.items.Item;
10
11/**
12 * The mime random event.
13 *
14 * @author Daniel
15 */
16public class MimeEvent extends RandomEvent {
17
18 /** Constructs a new <code>MimeEvent</code>. */
20 super(player, 20);
21 }
22
23 /** Creates a new Mime event. */
24 public static MimeEvent create(Player player) {
25 MimeEvent event = new MimeEvent(player);
26 event.add(player);
27 return event;
28 }
29
30 @Override
32 if (event.getNpc().id != eventNpcIdentification())
33 return false;
34 if (!event.getNpc().owner.equals(player))
35 return false;
36 if (angered) {
37 player.dialogueFactory.sendStatement("The mime is no longer interested in you.").execute();
38 return true;
39 }
40 if (event.getOpcode() == 0) {
41 player.dialogueFactory.sendStatement("You have been given a reward from the mime.").onAction(() -> {
42 player.dialogueFactory.clear();
43 player.inventory.addOrDrop(new Item(6831, 1));
45 }).execute();
46 } else if (event.getOpcode() == 1) {
47 angered = true;
48 player.send(new SendMessage("You have dismissed the mime random event."));
49 player.animate(new Animation(863));
50 player.interact(eventNpc);
52 }
53 return true;
54 }
55
56 @Override
57 protected int eventNpcIdentification() {
58 return 321;
59 }
60
61 @Override
62 protected String[] eventNpcShout() {
63 return new String[]{
64 "Mr" + (player.appearance.getGender() == Gender.FEMALE ? "s" : "") + ". %name, I have something for you!",
65 "Can you hear me %name? You need to talk to me!",
66 "Listen I don't have all day! Talk to me %name",
67 "That's it! No reward for you %name."
68 };
69 }
70}
final void finishCooldown()
Sets the cooldown flag to FINISH.
boolean angered
Flag if the event is angered.
RandomEvent(Player player, int cooldown)
Constructs a new RandomEvent.
int eventNpcIdentification()
The event npc identification.
static MimeEvent create(Player player)
Creates a new Mime event.
boolean clickNpc(Player player, NpcInteractionEvent event)
String[] eventNpcShout()
The event npc shout messages.
MimeEvent(Player player)
Constructs a new MimeEvent.
Class that models a single animation used by an entity.
This class represents a character controlled by a player.
Definition Player.java:125
The container class that represents an item that can be interacted with.
Definition Item.java:21
The OutgoingPacket that sends a message to a Players chatbox in the client.
Represents a gender for a player character.
Definition Gender.java:8