Removed the unnecessary and annoying player lock when cooking an item

Moved all the achievement diary checks out into the achievement event receiver
Refactored `ResourceGatheredEvent` -> `ResourceProducedEvent` and added a new optional field, `original` for item processing
This commit is contained in:
Ryan 2022-03-28 13:31:05 +00:00
parent f1cab8f6dc
commit f93cee6952
13 changed files with 50 additions and 80 deletions

View file

@ -1,6 +1,6 @@
package core.game.interaction.item.withobject; package core.game.interaction.item.withobject;
import api.events.ResourceGatheredEvent; import api.events.ResourceProducedEvent;
import core.plugin.Initializable; import core.plugin.Initializable;
import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.Skills;
import core.game.node.entity.skill.smithing.smelting.Bar; import core.game.node.entity.skill.smithing.smelting.Bar;
@ -9,6 +9,7 @@ import core.game.interaction.UseWithHandler;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
import core.game.node.item.Item; import core.game.node.item.Item;
import core.game.system.task.Pulse; import core.game.system.task.Pulse;
import org.rs09.consts.Items;
import rs09.game.world.GameWorld; import rs09.game.world.GameWorld;
import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Animation;
import core.plugin.Plugin; import core.plugin.Plugin;
@ -40,7 +41,7 @@ public class TutorialFurnaceHandler extends UseWithHandler {
player.getInventory().remove(new Item(436, 1)); player.getInventory().remove(new Item(436, 1));
player.getInventory().add(Bar.BRONZE.getProduct()); player.getInventory().add(Bar.BRONZE.getProduct());
player.getSkills().addExperience(Skills.SMITHING, Bar.BRONZE.getExperience()); player.getSkills().addExperience(Skills.SMITHING, Bar.BRONZE.getExperience());
player.dispatch(new ResourceGatheredEvent(Bar.BRONZE.getProduct().getId(), 1, player)); player.dispatch(new ResourceProducedEvent(Bar.BRONZE.getProduct().getId(), 1, player, Items.COPPER_ORE_436));
return true; return true;
} }

View file

@ -1,17 +1,14 @@
package core.game.node.entity.skill.cooking; package core.game.node.entity.skill.cooking;
import api.events.ResourceGatheredEvent; import api.events.ResourceProducedEvent;
import core.game.container.impl.EquipmentContainer;
import core.game.node.entity.impl.Animator; import core.game.node.entity.impl.Animator;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.audio.Audio;
import core.game.node.entity.player.link.diary.DiaryType;
import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.Skills;
import core.game.node.item.GroundItemManager; import core.game.node.item.GroundItemManager;
import core.game.node.item.Item; import core.game.node.item.Item;
import core.game.node.scenery.Scenery; import core.game.node.scenery.Scenery;
import core.game.system.task.Pulse; import core.game.system.task.Pulse;
import core.game.world.map.Location;
import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Animation;
import core.tools.RandomFunction; import core.tools.RandomFunction;
import org.rs09.consts.Items; import org.rs09.consts.Items;
@ -27,9 +24,11 @@ public class StandardCookingPulse extends Pulse {
//Cooking sound //Cooking sound
public static final Audio SOUND = new Audio(2577, 1, 1); public static final Audio SOUND = new Audio(2577, 1, 1);
private int initial, product, amount, level; private final int initial;
private Scenery object; private final int product;
private Player player; private int amount;
private final Scenery object;
private final Player player;
private double experience; private double experience;
private boolean burned = false; private boolean burned = false;
public CookableItems properties; public CookableItems properties;
@ -65,7 +64,6 @@ public class StandardCookingPulse extends Pulse {
} }
public boolean checkRequirements() { public boolean checkRequirements() {
this.level = 1;
this.experience = 0; this.experience = 0;
if (properties != null) { if (properties != null) {
// Handle Cook's Assistant range // Handle Cook's Assistant range
@ -80,7 +78,6 @@ public class StandardCookingPulse extends Pulse {
return false; return false;
} }
this.level = properties.level;
this.experience = properties.experience; this.experience = properties.experience;
this.burned = isBurned(player, object, initial); this.burned = isBurned(player, object, initial);
} }
@ -88,10 +85,7 @@ public class StandardCookingPulse extends Pulse {
return false; return false;
} }
if(!object.isActive()){ return object.isActive();
return false;
}
return true;
} }
public boolean reward() { public boolean reward() {
@ -139,13 +133,8 @@ public class StandardCookingPulse extends Pulse {
public boolean cook(final Player player, final Scenery object, final boolean burned, final int initial, final int product) { public boolean cook(final Player player, final Scenery object, final boolean burned, final int initial, final int product) {
Item initialItem = new Item(initial); Item initialItem = new Item(initial);
Item productItem = new Item(product); Item productItem = new Item(product);
player.lock(getDelay());
animate(); animate();
//lumbridge diary
if (object.getId() == 114 && player.getViewport().getRegion().getId() == 12850 && !player.getAchievementDiaryManager().getDiary(DiaryType.LUMBRIDGE).isComplete(0, 7)) {
player.getAchievementDiaryManager().updateTask(player, DiaryType.LUMBRIDGE, 0, 7, true);
}
//handle special cooking results (spits, cake, etc) that don't justify separate plugin //handle special cooking results (spits, cake, etc) that don't justify separate plugin
switch (initial) { switch (initial) {
case Items.RAW_BEAST_MEAT_9986: case Items.RAW_BEAST_MEAT_9986:
@ -171,40 +160,10 @@ public class StandardCookingPulse extends Pulse {
if (player.getInventory().remove(initialItem)) { if (player.getInventory().remove(initialItem)) {
if (!burned) { if (!burned) {
player.getInventory().add(productItem); player.getInventory().add(productItem);
player.dispatch(new ResourceGatheredEvent(productItem.getId(), 1, object)); player.dispatch(new ResourceProducedEvent(productItem.getId(), 1, object, initialItem.getId()));
player.getSkills().addExperience(Skills.COOKING, experience, true); player.getSkills().addExperience(Skills.COOKING, experience, true);
int playerRegion = player.getViewport().getRegion().getId();
// Achievement Diary Handling
if (productItem.getId() == Items.BASS_365
&& playerRegion == 11317
&& player.getAttribute("diary:seers:bass-caught", false)) {
player.getAchievementDiaryManager().finishTask(player, DiaryType.SEERS_VILLAGE, 1, 11);
}
if (productItem.getId() == Items.SHARK_385
&& playerRegion == 11317
&& player.getEquipment().get(EquipmentContainer.SLOT_HANDS) != null && player.getEquipment().get(EquipmentContainer.SLOT_HANDS).getId() == Items.COOKING_GAUNTLETS_775
&& !player.getAchievementDiaryManager().hasCompletedTask(DiaryType.SEERS_VILLAGE, 2, 8)) {
player.setAttribute("/save:diary:seers:cooked-shark", 1 + player.getAttribute("diary:seers:cooked-shark", 0));
if (player.getAttribute("diary:seers:cooked-shark", 0) >= 5) {
player.getAchievementDiaryManager().finishTask(player, DiaryType.SEERS_VILLAGE, 2, 8);
}
}
// Cook some rat meat on a campfire in Lumbridge Swamp
if (initialItem.getId() == Items.RAW_RAT_MEAT_2134 && object.getName().toLowerCase().contains("fire") && (playerRegion == 12593 || playerRegion == 12849)) {
player.getAchievementDiaryManager().finishTask(player, DiaryType.LUMBRIDGE, 1, 10);
}
// Cook a lobster on the range in Lumbridge Castle kitchen
if (productItem.getId() == Items.LOBSTER_379 && object.getId() == 114 && player.getLocation().withinDistance(Location.create(3211, 3215, 0))) {
player.getAchievementDiaryManager().finishTask(player, DiaryType.LUMBRIDGE, 2, 4);
}
} else { } else {
player.dispatch(new ResourceGatheredEvent(CookableItems.getBurnt(initial).getId(), 1, object)); player.dispatch(new ResourceProducedEvent(CookableItems.getBurnt(initial).getId(), 1, object, initialItem.getId()));
player.getInventory().add(CookableItems.getBurnt(initial)); player.getInventory().add(CookableItems.getBurnt(initial));
} }
player.getPacketDispatch().sendMessage(getMessage(initialItem, productItem, burned)); player.getPacketDispatch().sendMessage(getMessage(initialItem, productItem, burned));
@ -231,11 +190,7 @@ public class StandardCookingPulse extends Pulse {
} }
} }
public boolean updateTutorial(Player player) {
return cook(player, object, burned, initial, product);
}
private Animation getAnimation(final Scenery object) { private Animation getAnimation(final Scenery object) {
return !object.getName().toLowerCase().equals("fire") ? RANGE_ANIMATION : FIRE_ANIMATION; return !object.getName().equalsIgnoreCase("fire") ? RANGE_ANIMATION : FIRE_ANIMATION;
} }
} }

View file

@ -1,6 +1,6 @@
package core.game.node.entity.skill.gather.woodcutting; package core.game.node.entity.skill.gather.woodcutting;
import api.events.ResourceGatheredEvent; import api.events.ResourceProducedEvent;
import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.ItemDefinition;
import core.game.container.impl.EquipmentContainer; import core.game.container.impl.EquipmentContainer;
import core.game.content.dialogue.FacialExpression; import core.game.content.dialogue.FacialExpression;
@ -151,7 +151,7 @@ public class WoodcuttingSkillPulse extends Pulse {
} }
//give the reward //give the reward
player.getInventory().add(new Item(reward, rewardAmount)); player.getInventory().add(new Item(reward, rewardAmount));
player.dispatch(new ResourceGatheredEvent(reward, rewardAmount, node)); player.dispatch(new ResourceProducedEvent(reward, rewardAmount, node, -1));
int cutLogs = player.getAttribute(STATS_BASE + ":" + STATS_LOGS,0); int cutLogs = player.getAttribute(STATS_BASE + ":" + STATS_LOGS,0);
player.setAttribute("/save:" + STATS_BASE + ":" + STATS_LOGS,++cutLogs); player.setAttribute("/save:" + STATS_BASE + ":" + STATS_LOGS,++cutLogs);

View file

@ -1,6 +1,6 @@
package core.game.node.entity.skill.smithing; package core.game.node.entity.skill.smithing;
import api.events.ResourceGatheredEvent; import api.events.ResourceProducedEvent;
import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.ItemDefinition;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.diary.DiaryType;
@ -89,7 +89,7 @@ public class SmithingPulse extends SkillPulse<Item> {
player.getInventory().remove(new Item(bar.getBarType().getBarType(), bar.getSmithingType().getRequired())); player.getInventory().remove(new Item(bar.getBarType().getBarType(), bar.getSmithingType().getRequired()));
final Item item = new Item(node.getId(), bar.getSmithingType().getProductAmount()); final Item item = new Item(node.getId(), bar.getSmithingType().getProductAmount());
player.getInventory().add(item); player.getInventory().add(item);
player.dispatch(new ResourceGatheredEvent(item.getId(), 1, player)); player.dispatch(new ResourceProducedEvent(item.getId(), 1, player, bar.getBarType().getBarType()));
player.getSkills().addExperience(Skills.SMITHING, bar.getBarType().getExperience() * bar.getSmithingType().getRequired(), true); player.getSkills().addExperience(Skills.SMITHING, bar.getBarType().getExperience() * bar.getSmithingType().getRequired(), true);
String message = StringUtils.isPlusN(ItemDefinition.forId(bar.getProduct()).getName().toLowerCase()) ? "an" : "a"; String message = StringUtils.isPlusN(ItemDefinition.forId(bar.getProduct()).getName().toLowerCase()) ? "an" : "a";
player.getPacketDispatch().sendMessage("You hammer the " + bar.getBarType().getBarName().toLowerCase().replace("smithing", "") + "and make " + message + " " + ItemDefinition.forId(bar.getProduct()).getName().toLowerCase() + "."); player.getPacketDispatch().sendMessage("You hammer the " + bar.getBarType().getBarName().toLowerCase().replace("smithing", "") + "and make " + message + " " + ItemDefinition.forId(bar.getProduct()).getName().toLowerCase() + ".");

View file

@ -2,7 +2,7 @@ package core.game.node.entity.skill.smithing.smelting;
import static api.ContentAPIKt.*; import static api.ContentAPIKt.*;
import api.EquipmentSlot; import api.EquipmentSlot;
import api.events.ResourceGatheredEvent; import api.events.ResourceProducedEvent;
import core.game.container.impl.EquipmentContainer; import core.game.container.impl.EquipmentContainer;
import org.rs09.consts.Items; import org.rs09.consts.Items;
import core.game.world.map.Location; import core.game.world.map.Location;
@ -143,7 +143,7 @@ public class SmeltingPulse extends SkillPulse<Item> {
} }
} }
player.getInventory().add(new Item(bar.getProduct().getId(), amt)); player.getInventory().add(new Item(bar.getProduct().getId(), amt));
player.dispatch(new ResourceGatheredEvent(bar.getProduct().getId(), 1, player)); player.dispatch(new ResourceProducedEvent(bar.getProduct().getId(), 1, player, -1));
double xp = bar.getExperience() * amt; double xp = bar.getExperience() * amt;
// Goldsmith gauntlets // Goldsmith gauntlets
if (((player.getEquipment().get(EquipmentContainer.SLOT_HANDS) != null if (((player.getEquipment().get(EquipmentContainer.SLOT_HANDS) != null

View file

@ -5,7 +5,7 @@ import core.game.node.entity.Entity
import core.game.node.entity.npc.NPC import core.game.node.entity.npc.NPC
import core.game.node.entity.player.link.TeleportManager.TeleportType import core.game.node.entity.player.link.TeleportManager.TeleportType
data class ResourceGatheredEvent(val itemId: Int, val amount: Int, val source: Node) : Event data class ResourceProducedEvent(val itemId: Int, val amount: Int, val source: Node, val original: Int = -1) : Event
data class NPCKillEvent(val npc: NPC) : Event data class NPCKillEvent(val npc: NPC) : Event
data class TeleportEvent(val type: TeleportType, val source: Int = -1) : Event data class TeleportEvent(val type: TeleportType, val source: Int = -1) : Event
data class LitFireEvent(val logId: Int) : Event data class LitFireEvent(val logId: Int) : Event

View file

@ -3,7 +3,7 @@ package rs09.game
import api.events.* import api.events.*
object Event { object Event {
val ResourceGathered = ResourceGatheredEvent::class.java val ResourceProduced = ResourceProducedEvent::class.java
val NPCKilled = NPCKillEvent::class.java val NPCKilled = NPCKillEvent::class.java
val Teleport = TeleportEvent::class.java val Teleport = TeleportEvent::class.java
val FireLit = LitFireEvent::class.java val FireLit = LitFireEvent::class.java

View file

@ -10,7 +10,6 @@ import core.game.node.entity.skill.gather.mining.MiningNode
import core.game.node.entity.skill.gather.woodcutting.WoodcuttingNode import core.game.node.entity.skill.gather.woodcutting.WoodcuttingNode
import org.rs09.consts.Items import org.rs09.consts.Items
import org.rs09.consts.NPCs import org.rs09.consts.NPCs
import rs09.game.system.SystemLogger
/** /**
* Event receivers for tutorial island * Event receivers for tutorial island
@ -191,9 +190,9 @@ object TutorialInteractionReceiver : EventHook<InteractionEvent>
} }
} }
object TutorialResourceReceiver : EventHook<ResourceGatheredEvent> object TutorialResourceReceiver : EventHook<ResourceProducedEvent>
{ {
override fun process(entity: Entity, event: ResourceGatheredEvent) { override fun process(entity: Entity, event: ResourceProducedEvent) {
if(entity !is Player) return if(entity !is Player) return
when(getAttribute(entity, "tutorial:stage", 0)) when(getAttribute(entity, "tutorial:stage", 0))

View file

@ -11,7 +11,6 @@ import core.game.system.task.Pulse
import core.game.world.map.Location import core.game.world.map.Location
import org.rs09.consts.Components import org.rs09.consts.Components
import rs09.game.Event import rs09.game.Event
import rs09.game.system.SystemLogger
import rs09.game.world.GameWorld.Pulser import rs09.game.world.GameWorld.Pulser
import rs09.game.world.GameWorld.settings import rs09.game.world.GameWorld.settings
import rs09.game.world.repository.Repository import rs09.game.world.repository.Repository
@ -31,7 +30,7 @@ object TutorialStage {
{ {
player.hook(Event.ButtonClicked, TutorialButtonReceiver) player.hook(Event.ButtonClicked, TutorialButtonReceiver)
player.hook(Event.Interaction, TutorialInteractionReceiver) player.hook(Event.Interaction, TutorialInteractionReceiver)
player.hook(Event.ResourceGathered, TutorialResourceReceiver) player.hook(Event.ResourceProduced, TutorialResourceReceiver)
player.hook(Event.UsedWith, TutorialUseWithReceiver) player.hook(Event.UsedWith, TutorialUseWithReceiver)
player.hook(Event.FireLit, TutorialFireReceiver) player.hook(Event.FireLit, TutorialFireReceiver)
player.hook(Event.NPCKilled, TutorialKillReceiver) player.hook(Event.NPCKilled, TutorialKillReceiver)

View file

@ -16,7 +16,7 @@ import rs09.game.Event
class DiaryEventHook : LoginListener class DiaryEventHook : LoginListener
{ {
override fun login(player: Player) { override fun login(player: Player) {
player.hook(Event.ResourceGathered, DiaryGatherHooks) player.hook(Event.ResourceProduced, DiaryGatherHooks)
player.hook(Event.Teleport, DiaryTeleportHooks) player.hook(Event.Teleport, DiaryTeleportHooks)
player.hook(Event.NPCKilled, DiaryCombatHooks) player.hook(Event.NPCKilled, DiaryCombatHooks)
player.hook(Event.FireLit, DiaryFireHooks) player.hook(Event.FireLit, DiaryFireHooks)
@ -72,9 +72,9 @@ class DiaryEventHook : LoginListener
} }
} }
private object DiaryGatherHooks : EventHook<ResourceGatheredEvent> private object DiaryGatherHooks : EventHook<ResourceProducedEvent>
{ {
override fun process(entity: Entity, event: ResourceGatheredEvent) { override fun process(entity: Entity, event: ResourceProducedEvent) {
if(entity !is Player) return if(entity !is Player) return
val regionId = entity.viewport.region.id val regionId = entity.viewport.region.id
when(event.itemId) when(event.itemId)
@ -129,19 +129,35 @@ class DiaryEventHook : LoginListener
Items.SILVER_ORE_442 -> if(regionId == 13107) finishTask(entity, DiaryType.LUMBRIDGE, 2, 10) Items.SILVER_ORE_442 -> if(regionId == 13107) finishTask(entity, DiaryType.LUMBRIDGE, 2, 10)
Items.COAL_453 -> if(regionId == 12593) finishTask(entity, DiaryType.LUMBRIDGE, 2, 11) Items.COAL_453 -> if(regionId == 12593) finishTask(entity, DiaryType.LUMBRIDGE, 2, 11)
Items.BASS_365 -> if(regionId == 11317 && getAttribute(entity, "diary:seers:bass-caught", false)) finishTask(entity, DiaryType.SEERS_VILLAGE, 1, 11)
Items.SHARK_385 -> if(regionId == 11317 && getAttribute(entity, "diary:seers:shark-cooked", false) && isEquipped(entity, Items.COOKING_GAUNTLETS_775)) entity.incrementAttribute("/save:diary:seers:shark-cooked")
Items.LOBSTER_379 -> if(event.source.id == Scenery.COOKING_RANGE_114) finishTask(entity, DiaryType.LUMBRIDGE, 2, 4)
}
when(event.original)
{
Items.RAW_RAT_MEAT_2134 -> if((regionId == 12593 || regionId == 12849) && event.itemId == Items.COOKED_MEAT_2142) finishTask(entity, DiaryType.LUMBRIDGE, 1, 10)
} }
if(getAttribute(entity, "diary:seers:shark-caught", 0) >= 5) if(getAttribute(entity, "diary:seers:shark-caught", 0) >= 5)
finishTask(entity, DiaryType.SEERS_VILLAGE, 2, 7) finishTask(entity, DiaryType.SEERS_VILLAGE, 2, 7)
if(getAttribute(entity, "diary:seers:shark-cooked", 0) >= 5)
finishTask(entity, DiaryType.SEERS_VILLAGE, 2, 8)
if((regionId == 12593 || regionId == 12849) && event.source.name.startsWith("dead", true)) if((regionId == 12593 || regionId == 12849) && event.source.name.startsWith("dead", true))
finishTask(entity, DiaryType.LUMBRIDGE, 1, 8) finishTask(entity, DiaryType.LUMBRIDGE, 1, 8)
if(event.source.id == 333 && entity.zoneMonitor.isInZone("karamja")) if(event.source.id == NPCs.FISHING_SPOT_333 && entity.zoneMonitor.isInZone("karamja"))
finishTask(entity, DiaryType.KARAMJA, 0, 6) finishTask(entity, DiaryType.KARAMJA, 0, 6)
if(event.source.id == Scenery.YEW_TREE_8513 && regionId == 11828) if(event.source.id == Scenery.YEW_TREE_8513 && regionId == 11828)
finishTask(entity, DiaryType.FALADOR, 2, 3) finishTask(entity, DiaryType.FALADOR, 2, 3)
if(event.source.id == Scenery.COOKING_RANGE_114 && regionId == 12850)
finishTask(entity, DiaryType.LUMBRIDGE, 0, 7)
} }
} }

View file

@ -1,7 +1,7 @@
package rs09.game.node.entity.skill.cooking package rs09.game.node.entity.skill.cooking
import api.* import api.*
import api.events.ResourceGatheredEvent import api.events.ResourceProducedEvent
import core.game.node.item.Item import core.game.node.item.Item
import org.rs09.consts.Items import org.rs09.consts.Items
import rs09.game.content.dialogue.DialogueFile import rs09.game.content.dialogue.DialogueFile
@ -32,7 +32,7 @@ class DoughMakingListener : InteractionListener() {
end() end()
if(removeItem(player!!, used) && removeItem(player!!, with)){ if(removeItem(player!!, used) && removeItem(player!!, with)){
addItem(player!!, products[buttonID - 1]) addItem(player!!, products[buttonID - 1])
player!!.dispatch(ResourceGatheredEvent(products[buttonID - 1], 1, player!!)) player!!.dispatch(ResourceProducedEvent(products[buttonID - 1], 1, player!!))
sendMessage(player!!, "You mix the flower and the water to make some ${getItemName(products[buttonID - 1]).toLowerCase()}.") sendMessage(player!!, "You mix the flower and the water to make some ${getItemName(products[buttonID - 1]).toLowerCase()}.")
} }
} }

View file

@ -1,6 +1,6 @@
package rs09.game.node.entity.skill.gather.fishing package rs09.game.node.entity.skill.gather.fishing
import api.events.ResourceGatheredEvent import api.events.ResourceProducedEvent
import core.game.content.global.SkillingPets import core.game.content.global.SkillingPets
import core.game.node.entity.npc.NPC import core.game.node.entity.npc.NPC
import core.game.node.entity.player.Player import core.game.node.entity.player.Player
@ -113,7 +113,7 @@ class FishingPulse(player: Player?, npc: NPC, private val option: FishingOption?
if (player.skillTasks.hasTask()) { if (player.skillTasks.hasTask()) {
updateSkillTask() updateSkillTask()
} }
player.dispatch(ResourceGatheredEvent(fish!!.item.id, fish!!.item.amount, node!!)) player.dispatch(ResourceProducedEvent(fish!!.item.id, fish!!.item.amount, node!!))
SkillingPets.checkPetDrop(player, SkillingPets.HERON) SkillingPets.checkPetDrop(player, SkillingPets.HERON)
val item = fish!!.item val item = fish!!.item
if (isActive(SkillcapePerks.GREAT_AIM, player) && RandomFunction.random(100) <= 5) { if (isActive(SkillcapePerks.GREAT_AIM, player) && RandomFunction.random(100) <= 5) {

View file

@ -1,7 +1,7 @@
package rs09.game.node.entity.skill.gather.mining package rs09.game.node.entity.skill.gather.mining
import api.* import api.*
import api.events.ResourceGatheredEvent import api.events.ResourceProducedEvent
import core.cache.def.impl.ItemDefinition import core.cache.def.impl.ItemDefinition
import core.game.container.impl.EquipmentContainer import core.game.container.impl.EquipmentContainer
import core.game.content.dialogue.FacialExpression import core.game.content.dialogue.FacialExpression
@ -118,7 +118,7 @@ class MiningSkillPulse(private val player: Player, private val node: Node) : Pul
reward = calculateReward(reward) // calculate rewards reward = calculateReward(reward) // calculate rewards
rewardAmount = calculateRewardAmount(reward) // calculate amount rewardAmount = calculateRewardAmount(reward) // calculate amount
player.dispatch(ResourceGatheredEvent(reward, rewardAmount, node)) player.dispatch(ResourceProducedEvent(reward, rewardAmount, node))
SkillingPets.checkPetDrop(player, SkillingPets.GOLEM) // roll for pet SkillingPets.checkPetDrop(player, SkillingPets.GOLEM) // roll for pet
//add experience //add experience