From 350a2964ce36921c5917e4d3a975687bd5ac3780 Mon Sep 17 00:00:00 2001 From: vddcore <573729-vddcore@users.noreply.gitlab.com> Date: Sun, 3 Jul 2022 06:43:38 +0000 Subject: [PATCH] Added the missing sound effect for when a tree is felled after a successful woodcutting attempt Sound can be heard by other players nearby --- .../woodcutting/WoodcuttingSkillPulse.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java index 3fb37e71f..0090b46e7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java @@ -9,6 +9,7 @@ import core.game.content.global.SkillingPets; import core.game.node.entity.impl.Animator; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; +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.gather.SkillingTool; @@ -17,12 +18,16 @@ import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.Location; +import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; import rs09.game.node.entity.skill.farming.FarmingPatch; import rs09.game.node.entity.skill.farming.Patch; import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; +import java.util.List; +import java.util.stream.Collectors; + import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_LOGS; @@ -32,6 +37,8 @@ import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_ * @author ceik */ public class WoodcuttingSkillPulse extends Pulse { + private int[] woodcuttingSounds = { 3038, 3039, 3040, 3041, 3042 }; + private WoodcuttingNode resource; private int ticks; private Player player; @@ -99,7 +106,18 @@ public class WoodcuttingSkillPulse extends Pulse { } public void animate() { - if(!player.getAnimator().isAnimating()) player.animate(SkillingTool.getHatchet(player).getAnimation()); + if(!player.getAnimator().isAnimating()) { + player.animate(SkillingTool.getHatchet(player).getAnimation()); + + List playersAroundMe = RegionManager.getSurroundingPlayers(player); + int soundIndex = RandomFunction.random(0, woodcuttingSounds.length); + + player.getAudioManager().send( + new Audio(woodcuttingSounds[soundIndex]), + playersAroundMe, + player.getLocation() + ); + } } public boolean reward() { @@ -188,6 +206,9 @@ public class WoodcuttingSkillPulse extends Pulse { SceneryBuilder.replace(node, node.transform(0), resource.getRespawnDuration()); } node.setActive(false); + + // TODO: Extract this someplace appropriate. + player.getAudioManager().send(2734); return true; } }