RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
GodwarsActivity.java
1package com.osroyale.content.activity.impl.godwars;
2
3import com.osroyale.Config;
4import com.osroyale.content.activity.Activity;
5import com.osroyale.content.activity.ActivityType;
6import com.osroyale.content.activity.panel.ActivityPanel;
7import com.osroyale.content.event.impl.ObjectInteractionEvent;
8import com.osroyale.game.Animation;
9import com.osroyale.game.Graphic;
10import com.osroyale.game.world.entity.mob.Mob;
11import com.osroyale.game.world.entity.mob.player.Player;
12import com.osroyale.game.world.entity.mob.player.PlayerRight;
13import com.osroyale.game.world.object.GameObject;
14import com.osroyale.game.world.position.Area;
15import com.osroyale.game.world.position.Position;
16
17import java.util.Optional;
18
62
63public class GodwarsActivity extends Activity {
65 static final int ARMADYL = 0, BANDOS = 1, SARADOMIN = 2, ZAMORAK = 3;
66
68 private final Player player;
69
71 private int[] killCount = new int[4];
72
74 private final GodwarsListener listener = new GodwarsListener(this);
75
77 private GodwarsActivity(Player player) {
78 super(1, Mob.DEFAULT_INSTANCE);
79 this.player = player;
80 }
81
83 public static GodwarsActivity create(Player player) {
84 GodwarsActivity activity = new GodwarsActivity(player);
85 activity.add(player);
86 activity.update();
87 return activity;
88 }
89
91 void increment(int index) {
92 killCount[index]++;
93 update();
94 }
95
97 private boolean canEnter(int index) {
98 if (PlayerRight.isOwner(player)) {
99 return true;
100 }
101 if (player.inventory.contains(11942, 1)) {
102 player.inventory.remove(11942);
103 player.message("You have used your Ecumencial key to enter the room.");
104 return true;
105 }
106 if (killCount[index] < 5) {
107 player.message("You need 5 kills before accessing this door!");
108 return false;
109 }
110 return true;
111 }
112
113 @Override
114 protected void start() {
115 pause();
116 }
117
118 @Override
119 public void finish() {
120 remove(player);
121 }
122
123 @Override
124 public void cleanup() {
125 ActivityPanel.clear(player);
126 }
127
128 @Override
129 public void update() {
130 String armadyl = "Armadyl kills: <col=ffffff>" + killCount[ARMADYL];
131 String bandos = "Bandos kills: <col=ffffff>" + killCount[BANDOS];
132 String saradomin = "Saradomin kills: <col=ffffff>" + killCount[SARADOMIN];
133 String zamorak = "Zamorak kills: <col=ffffff>" + killCount[ZAMORAK];
134 ActivityPanel.update(player, -1, "God Wars", "", "", armadyl, bandos, saradomin, zamorak);
135 }
136
137 @Override
138 protected boolean clickObject(Player player, ObjectInteractionEvent event) {
139 GameObject object = event.getObject();
140 int identification = object.getId();
141
142 switch (identification) {
143 case 26502:
144 if (canEnter(ARMADYL) && player.getPosition().getY() < object.getPosition().getY()) {
145 player.move(new Position(player.getX(), player.getY() + 2, 2));
146 } else if (player.getPosition().getY() > object.getPosition().getY()) {
147 player.move(new Position(player.getX(), player.getY() - 2, 2));
148 }
149 return true;
150 case 26503:
151 if (canEnter(BANDOS) && player.getPosition().getX() < object.getPosition().getX()) {
152 player.move(new Position(player.getX() + 2, player.getY(), player.getHeight()));
153 } else if (player.getPosition().getX() > object.getPosition().getX()) {
154 player.move(new Position(player.getX() - 2, player.getY(), player.getHeight()));
155 }
156 return true;
157 case 26504:
158 if (player.getPosition().getX() < object.getPosition().getX()) {
159 player.move(new Position(player.getX() + 2, player.getY(), 0));
160 } else if (canEnter(SARADOMIN) && player.getPosition().getX() > object.getPosition().getX()) {
161 player.move(new Position(player.getX() - 2, player.getY(), 0));
162 }
163 return true;
164 case 26505:
165 if (canEnter(ZAMORAK) && player.getPosition().getY() > object.getPosition().getY()) {
166 player.move(new Position(player.getX(), player.getY() - 2, 2));
167 } else if (player.getPosition().getY() < object.getPosition().getY()) {
168 player.move(new Position(player.getX(), player.getY() + 2, 2));
169 }
170 return true;
171 case 26518:
172 if (player.getY() == 5332) {
173 player.move(new Position(2885, 5345, 2));
174 } else {
175 player.move(new Position(2885, 5332, 2));
176 }
177 return true;
178 case 26380:
179 if (player.getY() == 5269) {
180 player.move(new Position(2871, 5279, 2));
181 } else {
182 player.move(new Position(2871, 5269, 2));
183 }
184 return true;
185 case 26461:
186 if (player.getX() >= 2851) {
187 player.move(new Position(2850, 5333, 2));
188 } else {
189 player.move(new Position(2851, 5333, 2));
190 }
191 return true;
192 case 26561:
193 player.move(new Position(2918, 5300, 1));
194 return true;
195 case 26562:
196 player.move(new Position(2919, 5274, 0));
197 return true;
198 }
199 return false;
200 }
201
202 @Override
203 public void onRegionChange(Player player) {
204 if (!Area.inGodwars(player)) {
205 finish();
206 }
207 }
208
209 @Override
210 public boolean canTeleport(Player player) {
211 return true;
212 }
213 @Override
214 public void onDeath(Mob mob) {
215 if (mob.isPlayer()) {
216 cleanup();
218 mob.animate(Animation.RESET, true);
219 mob.graphic(Graphic.RESET, true);
220 }
221 }
222 @Override
223 public ActivityType getType() {
224 return ActivityType.GODWARS;
225 }
226
227 @Override
228 protected Optional<GodwarsListener> getListener() {
229 return Optional.of(listener);
230 }
231}
static final Position DEFAULT_POSITION
Definition Config.java:235
Activity(int cooldown, int instance)
Definition Activity.java:92
static void update(Player player, int amount, String title, String footer, String... strings)
void move(Position position)
Definition Mob.java:377