RuneHive-Game
Loading...
Searching...
No Matches
LockType.java
Go to the documentation of this file.
1package com.runehive.game.world.entity.mob.data;
2
3import com.runehive.game.Graphic;
4import com.runehive.game.world.entity.mob.Mob;
5import com.runehive.game.world.entity.mob.player.Player;
6import com.runehive.net.packet.out.SendMessage;
7import com.runehive.net.packet.out.SendWidget;
8
9import java.util.concurrent.TimeUnit;
10
11/**
12 * Holds all the lock types.
13 *
14 * @author Daniel
15 */
16public enum LockType {
17 MASTER(PacketType.values()) {
18 @Override
19 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
20 if (mob.isPlayer())
21 mob.getPlayer().action.reset();
22 return true;
23 }
24 },
26 @Override
27 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
28 if (mob.isPlayer())
29 mob.getPlayer().action.reset();
30 return true;
31 }
32 },
34 @Override
35 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
36 if (mob.isPlayer())
37 mob.getPlayer().action.reset();
38 return true;
39 }
40 },
42 @Override
43 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
44 mob.movement.reset();
45 return true;
46 }
47 },
49 @Override
50 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
51 return true;
52 }
53 },
55 @Override
56 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
57 if (mob.locking.locked(STUN))
58 return false;
59 mob.graphic(new Graphic(80, true));
60
61 if (mob.isPlayer()) {
62 Player player = mob.getPlayer();
63 player.resetFace();
64 player.getCombat().reset();
65 player.send(new SendMessage("You have been stunned!"));
67 }
68 return true;
69 }
70 },
72 @Override
73 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
74 if (mob.locking.locked(FREEZE)) {
75 return false;
76 }
77
78 if (mob.isPlayer()) {
79 Player player = mob.getPlayer();
80// player.resetFace();
81// player.getCombat().reset();
82 player.send(new SendMessage("You've been frozen!", true));
83 player.send(new SendWidget(SendWidget.WidgetType.FROZEN, time));
84 }
85 return true;
86 }
87 };
88
89 /** The lock packet flag. */
90 public final PacketType[] packets;
91
92 /** Handles the execution of the lock. */
93 public abstract boolean execute(Mob mob, int time, TimeUnit gUnit);
94
95 /** Constructs a new <code>LockType</code>. */
97 this.packets = packets;
98 }
99
100 public boolean isLocked(PacketType type) {
101 return isLocked(type, null, null);
102 }
103
104 public boolean isLocked(PacketType type, Mob mob, Object object) {
105 for (PacketType packet : packets) {
106 if (type == packet)
107 return !packet.exception(mob, object);
108 }
109 return false;
110 }
111}
Represents a single graphic that can be used by entities.
Definition Graphic.java:10
Handles the mob class.
Definition Mob.java:66
This class represents a character controlled by a player.
Definition Player.java:125
The OutgoingPacket that sends a message to a Players chatbox in the client.
abstract boolean execute(Mob mob, int time, TimeUnit gUnit)
Handles the execution of the lock.
boolean isLocked(PacketType type, Mob mob, Object object)
final PacketType[] packets
The lock packet flag.
Definition LockType.java:90
LockType(PacketType... packets)
Constructs a new LockType.
Definition LockType.java:96