RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DestructionSkillAction.java
1
package
com.osroyale.content.skill.impl;
2
3
import
com.osroyale.net.packet.out.SendMessage;
4
import
com.osroyale.game.action.policy.WalkablePolicy;
5
import
com.osroyale.game.world.entity.mob.Mob;
6
import
com.osroyale.content.skill.SkillAction;
7
import
com.osroyale.game.world.items.Item;
8
import
com.osroyale.game.world.items.ItemDefinition;
9
import
com.osroyale.game.world.position.Position;
10
import
com.osroyale.util.RandomGen;
11
12
import
java.util.Optional;
13
61
62
public
abstract
class
DestructionSkillAction
extends
SkillAction
{
63
64
private
static
final
int
SUCCESS_FACTOR = 10;
65
private
final
RandomGen random =
new
RandomGen();
66
73
public
DestructionSkillAction
(
Mob
mob, Optional<Position> position,
boolean
instant) {
74
super(mob, position, instant);
75
}
76
77
@Override
78
public
boolean
canRun
() {
79
String name =
ItemDefinition
.
get
(
destructItem
().getId()).
getName
();
80
if
(
getMob
().isPlayer() && !
getMob
().getPlayer().inventory.contains(
destructItem
().getId())) {
81
getMob
().getPlayer().send(
new
SendMessage
(
"You do not have any "
+ name +
" in your inventory."
));
82
return
false
;
83
}
84
return
true
;
85
}
86
87
public
abstract
double
successFactor();
88
89
@Override
90
public
final
void
onExecute
() {
91
int
factor = (
getMob
().skills.getSkills()[
skill
()].getLevel() / SUCCESS_FACTOR);
92
double
boost = (factor * 0.01);
93
if
(random.success((successFactor() + boost))) {
94
if
(
getMob
().isPlayer()) {
95
onDestruct
(
true
);
96
getMob
().skills.addExperience(
skill
(),
experience
());
97
this.
cancel
();
98
return
;
99
}
100
}
else
{
101
onDestruct
(
false
);
102
}
103
}
104
105
@Override
106
public
final
WalkablePolicy
getWalkablePolicy
() {
107
return
WalkablePolicy
.
NON_WALKABLE
;
108
}
109
114
public
void
onDestruct
(
boolean
success) {
115
116
}
117
122
public
abstract
Item
destructItem
();
123
124
@Override
125
public
boolean
prioritized
() {
126
return
false
;
127
}
128
}
com.osroyale.content.skill.SkillAction.skill
abstract int skill()
com.osroyale.content.skill.SkillAction.experience
abstract double experience()
com.osroyale.content.skill.SkillAction.SkillAction
SkillAction(Mob mob, Optional< Position > position, int delay, boolean instant)
Definition
SkillAction.java:66
com.osroyale.content.skill.impl.DestructionSkillAction.canRun
boolean canRun()
Definition
DestructionSkillAction.java:78
com.osroyale.content.skill.impl.DestructionSkillAction.prioritized
boolean prioritized()
Definition
DestructionSkillAction.java:125
com.osroyale.content.skill.impl.DestructionSkillAction.destructItem
abstract Item destructItem()
com.osroyale.content.skill.impl.DestructionSkillAction.DestructionSkillAction
DestructionSkillAction(Mob mob, Optional< Position > position, boolean instant)
Definition
DestructionSkillAction.java:73
com.osroyale.content.skill.impl.DestructionSkillAction.getWalkablePolicy
final WalkablePolicy getWalkablePolicy()
Definition
DestructionSkillAction.java:106
com.osroyale.content.skill.impl.DestructionSkillAction.onDestruct
void onDestruct(boolean success)
Definition
DestructionSkillAction.java:114
com.osroyale.content.skill.impl.DestructionSkillAction.onExecute
final void onExecute()
Definition
DestructionSkillAction.java:90
com.osroyale.game.action.Action.getMob
T getMob()
Definition
Action.java:44
com.osroyale.game.task.Task.cancel
synchronized final void cancel()
Definition
Task.java:147
com.osroyale.game.world.entity.mob.Mob
Definition
Mob.java:103
com.osroyale.game.world.items.ItemDefinition
Definition
ItemDefinition.java:65
com.osroyale.game.world.items.ItemDefinition.getName
String getName()
Definition
ItemDefinition.java:713
com.osroyale.game.world.items.ItemDefinition.get
static ItemDefinition get(int id)
Definition
ItemDefinition.java:686
com.osroyale.net.packet.out.SendMessage
Definition
SendMessage.java:38
com.osroyale.game.action.policy.WalkablePolicy
Definition
WalkablePolicy.java:34
com.osroyale.game.action.policy.WalkablePolicy.NON_WALKABLE
NON_WALKABLE
Definition
WalkablePolicy.java:40