RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ScatterAshAction.java
1package com.osroyale.game.action.impl;
2
3import com.osroyale.Config;
4import com.osroyale.content.skill.impl.prayer.AshData;
5import com.osroyale.content.skillcape.SkillCape;
6import com.osroyale.content.achievement.AchievementHandler;
7import com.osroyale.content.achievement.AchievementKey;
8import com.osroyale.content.skill.SkillAction;
9import com.osroyale.content.skill.impl.prayer.BoneData;
10import com.osroyale.game.Animation;
11import com.osroyale.game.action.policy.WalkablePolicy;
12import com.osroyale.game.world.entity.mob.player.Player;
13import com.osroyale.game.world.entity.skill.Skill;
14import com.osroyale.game.world.items.Item;
15import com.osroyale.net.packet.out.SendMessage;
16
17import java.util.Optional;
18
49
50public final class ScatterAshAction extends SkillAction {
51 private final int slot;
52 private final Item item;
53 private final AshData ashes;
54
55 public ScatterAshAction(Player player, AshData ashes, int slot) {
56 super(player, Optional.empty(), true);
57 this.slot = slot;
58 this.ashes = ashes;
59 this.item = player.inventory.get(slot);
60 }
61
62 @Override
63 public boolean canInit() {
64 return getMob().skills.getSkills()[skill()].stopwatch.elapsed(1200);
65 }
66
67 @Override
68 public void init() {
69
70 }
71
72 @Override
73 public void onExecute() {
74 getMob().animate(new Animation(2295));
75 Player player = getMob().getPlayer();
76 player.inventory.remove(item, slot, true);
77 player.skills.addExperience(skill(), experience());
78 player.send(new SendMessage("You scatter the ashes."));
79
80 cancel();
81 }
82
83 @Override
84 public void onCancel(boolean logout) {
85 getMob().skills.getSkills()[skill()].stopwatch.reset();
86 }
87
88 @Override
89 public Optional<SkillAnimation> animation() {
90 return Optional.empty();
91 }
92
93 @Override
94 public double experience() {
95 double exp = (ashes.getExperience() * Config.PRAYER_MODIFICATION);
96 if (SkillCape.isEquipped(getMob().getPlayer(), SkillCape.PRAYER)) {
97 exp *= 2.0;
98 }
99 return exp;
100 }
101
102 @Override
103 public int skill() {
104 return Skill.PRAYER;
105 }
106
107 @Override
108 public String getName() {
109 return "Ash scatter";
110 }
111
112 @Override
113 public boolean prioritized() {
114 return false;
115 }
116
117 @Override
121}
static final double PRAYER_MODIFICATION
Definition Config.java:316
SkillAction(Mob mob, Optional< Position > position, int delay, boolean instant)
synchronized final void cancel()
Definition Task.java:147
void addExperience(int id, double experience)