RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
RandomEvent.java
1package com.osroyale.content.activity.randomevent;
2
3
4import com.osroyale.Config;
5import com.osroyale.content.activity.Activity;
6import com.osroyale.content.activity.ActivityDeathType;
7import com.osroyale.content.activity.ActivityType;
8import com.osroyale.game.Animation;
9import com.osroyale.game.Graphic;
10import com.osroyale.game.world.entity.combat.hit.Hit;
11import com.osroyale.game.world.entity.mob.npc.Npc;
12import com.osroyale.game.world.entity.mob.player.Player;
13import com.osroyale.net.packet.out.SendMessage;
14
56
57public abstract class RandomEvent extends Activity {
58
60 public Player player;
61
63 protected Npc eventNpc;
64
66 private int count;
67
69 protected boolean angered;
70
72 public RandomEvent(Player player, int cooldown) {
73 super(cooldown, player.instance);
74 this.player = player;
75 this.count = 0;
76 }
77
79 protected abstract int eventNpcIdentification();
80
82 protected abstract String[] eventNpcShout();
83
84 @Override
85 protected void start() {
86 if (count >= eventNpcShout().length) {
87 player.damage(new Hit(5));
88 finish();
89 return;
90 }
91 if (eventNpc == null) {
92 eventNpc = new Npc(eventNpcIdentification(), player.getPosition());
94 eventNpc.interact(player);
95 eventNpc.follow(player);
96 eventNpc.graphic(new Graphic(86, true));
97 eventNpc.owner = player;
98 cooldown(2);
99 return;
100 }
101 eventNpc.animate(new Animation(863));
102 eventNpc.speak(eventNpcShout()[count].replace("%name", player.getName()));
103 eventNpc.follow(player);
104 count++;
105 if (count >= eventNpcShout().length) {
106 angered = true;
107 eventNpc.graphic(new Graphic(86, true));
108 eventNpc.animate(new Animation(864));
110 player.send(new SendMessage("You have been teleported home since you've ignored the random event."));
111 cooldown(2);
112 } else {
114 }
115 }
116
117 @Override
118 public void finish() {
119 cleanup();
120 remove(player);
121 }
122
123 @Override
125 if (eventNpc != null && eventNpc.getPosition().isWithinDistance(player.getPosition(), 15)) {
127 }
128 }
129
130 @Override
131 public void onLogout(Player player) {
132 finish();
133 }
134
135 @Override
136 public void cleanup() {
137 remove(eventNpc);
138 }
139
140 @Override
141 public ActivityDeathType deathType() {
142 return ActivityDeathType.NORMAL;
143 }
144
145 @Override
146 public ActivityType getType() {
147 return ActivityType.RANDOM_EVENT;
148 }
149}
static final Position DEFAULT_POSITION
Definition Config.java:235
Activity(int cooldown, int instance)
Definition Activity.java:92