mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
Audio Refactor
1st of many audio refactors, the end goal is removing AudioManager.java and using contentAPI functions for all sound Refactored playAudio Refactored playGlobalAudio Fixed lunar teleport sounds to not play if teleblocked Refactored the following sounds: All the special attack and DFS sounds defaulting to new API radius of 8 instead of 5 Dropping coins, item, and destroying object sounds fixed Ectophial refill sound Agility pyramid sounds Emptying a fishbowl Enchanted jewellery teleport sound Enchanted jewellery enchant tab sound All the sounds for Elemental Workshop 1 listeners The sound when getting experience from a lamp Blessing and repairing a grave Hunter pitfall sounds Hunter sound when catching a kebbit with a noose Lunar cure me and cure group spell sound High and low alchemy spells Silver crafting at a furnace Spinning at a spinning wheel Drinking from a waterskin in the desert Sound when being blessed by drezel in nature's spirit quest Sound when poison immunity has 30 seconds left and when your immunity expires Shearing regular sheep and the penguin sheep at lumbridge Sound when regular spell book charge spell expires GE sounds: making 0 coin offer when buying, not having enough money, placing a buy offer, not enough room in inventory Sound when filling vessels from a water source Regular and ancient combat spells
This commit is contained in:
parent
7a585796be
commit
a105821427
69 changed files with 180 additions and 231 deletions
|
|
@ -6,7 +6,6 @@ import core.api.*
|
||||||
import core.game.event.TeleportEvent
|
import core.game.event.TeleportEvent
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.player.link.TeleportManager
|
import core.game.node.entity.player.link.TeleportManager
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
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 core.game.world.map.Location
|
import core.game.world.map.Location
|
||||||
|
|
@ -14,6 +13,7 @@ import core.game.world.update.flag.context.Animation
|
||||||
import core.game.world.update.flag.context.Graphics
|
import core.game.world.update.flag.context.Graphics
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import core.game.world.GameWorld.Pulser
|
import core.game.world.GameWorld.Pulser
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -223,7 +223,7 @@ enum class EnchantedJewellery(
|
||||||
0 -> {
|
0 -> {
|
||||||
lock(player,4)
|
lock(player,4)
|
||||||
visualize(player, ANIMATION, GRAPHICS)
|
visualize(player, ANIMATION, GRAPHICS)
|
||||||
playAudio(player, AUDIO, true)
|
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
player.impactHandler.disabledTicks = 4
|
player.impactHandler.disabledTicks = 4
|
||||||
}
|
}
|
||||||
3 -> {
|
3 -> {
|
||||||
|
|
@ -325,7 +325,6 @@ enum class EnchantedJewellery(
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val ANIMATION = Animation(714)
|
private val ANIMATION = Animation(714)
|
||||||
private val AUDIO = Audio(200)
|
|
||||||
private val GRAPHICS = Graphics(308, 100, 50)
|
private val GRAPHICS = Graphics(308, 100, 50)
|
||||||
val idMap = HashMap<Int, EnchantedJewellery>()
|
val idMap = HashMap<Int, EnchantedJewellery>()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,11 @@ import core.game.component.Component
|
||||||
import core.game.component.ComponentDefinition
|
import core.game.component.ComponentDefinition
|
||||||
import core.game.component.ComponentPlugin
|
import core.game.component.ComponentPlugin
|
||||||
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.skill.Skills
|
import core.game.node.entity.skill.Skills
|
||||||
import core.plugin.Initializable
|
import core.plugin.Initializable
|
||||||
import core.plugin.Plugin
|
import core.plugin.Plugin
|
||||||
import core.tools.Log
|
import core.tools.Log
|
||||||
import core.tools.SystemLogger
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the experience interface.
|
* Represents the experience interface.
|
||||||
|
|
@ -94,7 +93,7 @@ class ExperienceInterface() : ComponentPlugin() {
|
||||||
/**
|
/**
|
||||||
* Represents the sound to send.
|
* Represents the sound to send.
|
||||||
*/
|
*/
|
||||||
private val SOUND = Audio(1270, 12, 1)
|
private val SOUND = Sounds.TBCU_FINDGEM_1270
|
||||||
@JvmField
|
@JvmField
|
||||||
public val COMPONENT_ID = 134
|
public val COMPONENT_ID = 134
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import core.api.*
|
||||||
import core.game.component.Component
|
import core.game.component.Component
|
||||||
import core.game.ge.OfferState
|
import core.game.ge.OfferState
|
||||||
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.item.Item
|
import core.game.node.item.Item
|
||||||
import core.net.packet.PacketRepository
|
import core.net.packet.PacketRepository
|
||||||
import core.net.packet.context.ConfigContext
|
import core.net.packet.context.ConfigContext
|
||||||
|
|
@ -19,6 +18,7 @@ import core.game.ge.PriceIndex
|
||||||
import core.game.interaction.InterfaceListener
|
import core.game.interaction.InterfaceListener
|
||||||
import core.tools.Log
|
import core.tools.Log
|
||||||
import core.tools.SystemLogger
|
import core.tools.SystemLogger
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -230,13 +230,13 @@ class StockMarket : InterfaceListener {
|
||||||
{
|
{
|
||||||
if(offer.offeredValue < 1)
|
if(offer.offeredValue < 1)
|
||||||
{
|
{
|
||||||
playAudio(player, Audio(4039, 1, 1))
|
playAudio(player, Sounds.GE_TRADE_ERROR_4039)
|
||||||
sendMessage(player, "You can't make an offer for 0 coins.")
|
sendMessage(player, "You can't make an offer for 0 coins.")
|
||||||
return OfferConfirmResult.ZeroCoins
|
return OfferConfirmResult.ZeroCoins
|
||||||
}
|
}
|
||||||
if(offer.amount > Int.MAX_VALUE / offer.offeredValue)
|
if(offer.amount > Int.MAX_VALUE / offer.offeredValue)
|
||||||
{
|
{
|
||||||
playAudio(player, Audio(4039, 1, 1))
|
playAudio(player, Sounds.GE_TRADE_ERROR_4039)
|
||||||
sendMessage(player, "You can't ${if(offer.sell) "sell" else "buy"} this much!")
|
sendMessage(player, "You can't ${if(offer.sell) "sell" else "buy"} this much!")
|
||||||
return OfferConfirmResult.TooManyCoins
|
return OfferConfirmResult.TooManyCoins
|
||||||
}
|
}
|
||||||
|
|
@ -246,7 +246,7 @@ class StockMarket : InterfaceListener {
|
||||||
val maxAmt = getInventoryAmount(player, offer.itemID)
|
val maxAmt = getInventoryAmount(player, offer.itemID)
|
||||||
if(offer.amount > maxAmt)
|
if(offer.amount > maxAmt)
|
||||||
{
|
{
|
||||||
playAudio(player, Audio(4039, 1, 1))
|
playAudio(player, Sounds.GE_TRADE_ERROR_4039)
|
||||||
sendMessage(player, "You do not have enough of this item in your inventory to cover the")
|
sendMessage(player, "You do not have enough of this item in your inventory to cover the")
|
||||||
sendMessage(player, "offer.")
|
sendMessage(player, "offer.")
|
||||||
return OfferConfirmResult.NotEnoughItemsOrCoins
|
return OfferConfirmResult.NotEnoughItemsOrCoins
|
||||||
|
|
@ -275,7 +275,7 @@ class StockMarket : InterfaceListener {
|
||||||
val total = offer.amount * offer.offeredValue
|
val total = offer.amount * offer.offeredValue
|
||||||
if(!inInventory(player, 995, total))
|
if(!inInventory(player, 995, total))
|
||||||
{
|
{
|
||||||
playAudio(player, Audio(4039, 1, 1))
|
playAudio(player, Sounds.GE_TRADE_ERROR_4039)
|
||||||
sendMessage(player, "You do not have enough coins to cover the offer.")
|
sendMessage(player, "You do not have enough coins to cover the offer.")
|
||||||
return OfferConfirmResult.NotEnoughItemsOrCoins
|
return OfferConfirmResult.NotEnoughItemsOrCoins
|
||||||
}
|
}
|
||||||
|
|
@ -284,7 +284,7 @@ class StockMarket : InterfaceListener {
|
||||||
player.removeAttribute("ge-temp")
|
player.removeAttribute("ge-temp")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
playAudio(player, Audio(4043, 1, 1))
|
playAudio(player, Sounds.GE_PLACE_ITEM_4043)
|
||||||
offer.visualize(player)
|
offer.visualize(player)
|
||||||
toMainInterface(player)
|
toMainInterface(player)
|
||||||
return OfferConfirmResult.Success
|
return OfferConfirmResult.Success
|
||||||
|
|
@ -360,7 +360,7 @@ class StockMarket : InterfaceListener {
|
||||||
val note = item.noteChange
|
val note = item.noteChange
|
||||||
if(note == -1 || !hasSpaceFor(player, Item(note, item.amount)))
|
if(note == -1 || !hasSpaceFor(player, Item(note, item.amount)))
|
||||||
{
|
{
|
||||||
playAudio(player, Audio(4039, 1, 1))
|
playAudio(player, Sounds.GE_TRADE_ERROR_4039)
|
||||||
sendMessage(player, "You do not have enough room in your inventory.")
|
sendMessage(player, "You do not have enough room in your inventory.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,6 @@ import core.game.node.entity.impl.Projectile;
|
||||||
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.node.item.ItemPlugin;
|
import core.game.node.item.ItemPlugin;
|
||||||
import core.game.world.map.MapDistance;
|
|
||||||
import core.game.world.map.RegionManager;
|
|
||||||
import core.game.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
|
|
@ -87,7 +85,7 @@ public final class DragonfireShieldPlugin extends OptionHandler {
|
||||||
setVarp(player, 301, 0);
|
setVarp(player, 301, 0);
|
||||||
}
|
}
|
||||||
player.removeAttribute("dfs_spec");
|
player.removeAttribute("dfs_spec");
|
||||||
playAudio(entity.asPlayer(), Sounds.DRAGONSLAYER_SHIELDFIRE_3761, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.DRAGONSLAYER_SHIELDFIRE_3761);
|
||||||
Item shield = player.getEquipment().get(EquipmentContainer.SLOT_SHIELD);
|
Item shield = player.getEquipment().get(EquipmentContainer.SLOT_SHIELD);
|
||||||
if (shield == null || shield.getId() != 11283) {
|
if (shield == null || shield.getId() != 11283) {
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -103,7 +101,7 @@ public final class DragonfireShieldPlugin extends OptionHandler {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void visualizeImpact(Entity entity, Entity victim, BattleState state) {
|
public void visualizeImpact(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.FIRESTRIKE_HIT_161, 10, 20, true, victim.getLocation(), 5);
|
playGlobalAudio(victim.getLocation(), Sounds.FIRESTRIKE_HIT_161, 20);
|
||||||
super.visualizeImpact(entity, victim, state);
|
super.visualizeImpact(entity, victim, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,7 +118,7 @@ public final class DragonfireShieldPlugin extends OptionHandler {
|
||||||
player.getInventory().replace(new Item(11284), item.getSlot());
|
player.getInventory().replace(new Item(11284), item.getSlot());
|
||||||
player.graphics(Graphics.create(1160));
|
player.graphics(Graphics.create(1160));
|
||||||
player.getPacketDispatch().sendMessage("You release the charges.");
|
player.getPacketDispatch().sendMessage("You release the charges.");
|
||||||
playAudio(player,Sounds.DRAGONSLAYER_SHIELD_EMPTY_3760);
|
playGlobalAudio(player.getLocation(), Sounds.DRAGONSLAYER_SHIELD_EMPTY_3760);
|
||||||
return true;
|
return true;
|
||||||
case "inspect":
|
case "inspect":
|
||||||
if (item.getId() == 11284) {
|
if (item.getId() == 11284) {
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ import core.api.*
|
||||||
import core.game.interaction.IntType
|
import core.game.interaction.IntType
|
||||||
import core.game.interaction.InteractionListener
|
import core.game.interaction.InteractionListener
|
||||||
import core.game.interaction.QueueStrength
|
import core.game.interaction.QueueStrength
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
class EnchantJewelleryTabListener : InteractionListener {
|
class EnchantJewelleryTabListener : InteractionListener {
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ class EnchantJewelleryTabListener : InteractionListener {
|
||||||
val product = items[item.id] ?: continue
|
val product = items[item.id] ?: continue
|
||||||
if (removeItem(player, node.id) && (removeItem(player, item.id))) {
|
if (removeItem(player, node.id) && (removeItem(player, item.id))) {
|
||||||
addItem(player, product)
|
addItem(player, product)
|
||||||
playAudio(player, Audio(979), false)
|
playAudio(player, Sounds.POH_TABLET_BREAK_979)
|
||||||
animate(player, 4069, true)
|
animate(player, 4069, true)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ public class FishbowlPlugin extends OptionHandler {
|
||||||
if (player.getInventory().remove(item)) {
|
if (player.getInventory().remove(item)) {
|
||||||
player.lock(2);
|
player.lock(2);
|
||||||
player.getInventory().add(new Item(FISHBOWL_EMPTY));
|
player.getInventory().add(new Item(FISHBOWL_EMPTY));
|
||||||
playAudio(player, Sounds.LIQUID_2401, 1);
|
playAudio(player, Sounds.LIQUID_2401);
|
||||||
player.getPacketDispatch().sendMessage("You empty the contents of the fishbowl onto the ground.");
|
player.getPacketDispatch().sendMessage("You empty the contents of the fishbowl onto the ground.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the ancient mace special attack "Favour of the War God".
|
* Handles the ancient mace special attack "Favour of the War God".
|
||||||
|
|
@ -75,7 +75,7 @@ public final class AncientMaceSpecialHandler extends MeleeSwingHandler implement
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.GOBLIN_MACE_3592, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.GOBLIN_MACE_3592);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Bone dagger special attack "Backstab".
|
* Handles the Bone dagger special attack "Backstab".
|
||||||
|
|
@ -73,7 +73,7 @@ public final class BackstabSpecialHandler extends MeleeSwingHandler implements P
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.DTTD_BONE_DAGGER_STAB_1084, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.DTTD_BONE_DAGGER_STAB_1084);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import org.rs09.consts.Sounds;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Rune throwing axe special attack "Chain-hit".
|
* Handles the Rune throwing axe special attack "Chain-hit".
|
||||||
|
|
@ -107,7 +107,7 @@ public final class ChainhitSpecialHandler extends RangeSwingHandler implements P
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.CHAINSHOT_2528, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.CHAINSHOT_2528);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
int speed = (int) (32 + (entity.getLocation().getDistance(victim.getLocation()) * 5));
|
int speed = (int) (32 + (entity.getLocation().getDistance(victim.getLocation()) * 5));
|
||||||
Projectile.create(entity, victim, 258, 40, 36, 32, speed, 5, 11).send();
|
Projectile.create(entity, victim, 258, 40, 36, 32, speed, 5, 11).send();
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
|
|
@ -14,7 +13,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the cleave special handler.
|
* Represents the cleave special handler.
|
||||||
|
|
@ -67,7 +66,7 @@ public final class CleaveSpecialHandler extends MeleeSwingHandler implements Plu
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.CLEAVE_2529, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.CLEAVE_2529);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import core.game.node.entity.combat.equipment.Weapon;
|
||||||
import core.game.node.entity.combat.equipment.Weapon.WeaponType;
|
import core.game.node.entity.combat.equipment.Weapon.WeaponType;
|
||||||
import core.game.node.entity.impl.Projectile;
|
import core.game.node.entity.impl.Projectile;
|
||||||
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.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
|
|
@ -18,7 +17,7 @@ import core.tools.RandomFunction;
|
||||||
import core.game.node.entity.combat.RangeSwingHandler;
|
import core.game.node.entity.combat.RangeSwingHandler;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the descent of darkness sepcial handler.
|
* Represents the descent of darkness sepcial handler.
|
||||||
|
|
@ -146,8 +145,8 @@ public final class DescentOfDarknessSpecialHandler extends RangeSwingHandler imp
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualizeImpact(Entity entity, Entity victim, BattleState state) {
|
public void visualizeImpact(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.DARKBOW_SHADOW_ATTACK_3736, 10, 20, true, victim.getLocation(), 10);
|
playGlobalAudio(victim.getLocation(), Sounds.DARKBOW_SHADOW_ATTACK_3736, 20);
|
||||||
playAudio(entity.asPlayer(), Sounds.DARKBOW_SHADOW_IMPACT_3737, 10, 40, true, victim.getLocation(), 10);
|
playGlobalAudio(victim.getLocation(), Sounds.DARKBOW_SHADOW_IMPACT_3737, 40);
|
||||||
victim.visualize(victim.getProperties().getDefenceAnimation(), state.isFrozen() ? DRAGON_IMPACT : DARKNESS_IMPACT);
|
victim.visualize(victim.getProperties().getDefenceAnimation(), state.isFrozen() ? DRAGON_IMPACT : DARKNESS_IMPACT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Abyssal whip's Energy drain special attack.
|
* Handles the Abyssal whip's Energy drain special attack.
|
||||||
|
|
@ -70,7 +70,7 @@ public final class EnergyDrainSpecialHandler extends MeleeSwingHandler implement
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.ENERGYDRAIN_2713, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.ENERGYDRAIN_2713);
|
||||||
entity.animate(ANIMATION);
|
entity.animate(ANIMATION);
|
||||||
victim.graphics(GRAPHIC);
|
victim.graphics(GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles Vesta's Longsword special attack, feint.
|
* Handles Vesta's Longsword special attack, feint.
|
||||||
|
|
@ -61,7 +61,7 @@ public final class FeintSpecialHandler extends MeleeSwingHandler implements Plug
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.CLEAVE_2529, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.CLEAVE_2529);
|
||||||
entity.animate(ANIMATION);
|
entity.animate(ANIMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
|
|
@ -14,7 +13,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the healing blade special attack.
|
* Handles the healing blade special attack.
|
||||||
|
|
@ -77,7 +76,7 @@ public final class HealingBladeSpecialHandler extends MeleeSwingHandler implemen
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.GODWARS_SARADOMIN_SPECIAL_3857, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.GODWARS_SARADOMIN_SPECIAL_3857);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ public final class IceCleaveSpecialHandler extends MeleeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.GODWARS_GODSWORD_SLASH_3846, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.GODWARS_GODSWORD_SLASH_3846);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Rune claws special attack "Impale".
|
* Handles the Rune claws special attack "Impale".
|
||||||
|
|
@ -67,7 +67,7 @@ public final class ImpaleSpecialHandler extends MeleeSwingHandler implements Plu
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.IMPALE_2534, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.IMPALE_2534);
|
||||||
if (((Player) entity).getDetails().getRights() == Rights.ADMINISTRATOR) {
|
if (((Player) entity).getDetails().getRights() == Rights.ADMINISTRATOR) {
|
||||||
entity.animate(Animation.create(2068));
|
entity.animate(Animation.create(2068));
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
|
|
@ -14,7 +13,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Judgement special attack.
|
* Handles the Judgement special attack.
|
||||||
|
|
@ -67,7 +66,7 @@ public final class JudgementSpecialHandler extends MeleeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.GODWARS_GODSWORD_SPECIAL_ATTACK_3865, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.GODWARS_GODSWORD_SPECIAL_ATTACK_3865);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import core.tools.RandomFunction;
|
||||||
import core.game.node.entity.combat.RangeSwingHandler;
|
import core.game.node.entity.combat.RangeSwingHandler;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Magic longbow special attack "Powershot".
|
* Handles the Magic longbow special attack "Powershot".
|
||||||
|
|
@ -67,7 +67,7 @@ public final class PowershotSpecialHandler extends RangeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.POWERSHOT_2536, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.POWERSHOT_2536);
|
||||||
entity.visualize(state.getRangeWeapon().getAnimation(), GRAPHIC);
|
entity.visualize(state.getRangeWeapon().getAnimation(), GRAPHIC);
|
||||||
int speed = (int) (46 + (entity.getLocation().getDistance(victim.getLocation()) * 5));
|
int speed = (int) (46 + (entity.getLocation().getDistance(victim.getLocation()) * 5));
|
||||||
Projectile.create(entity, victim, 249, 40, 36, 45, speed, 5, 11).send();
|
Projectile.create(entity, victim, 249, 40, 36, 45, speed, 5, 11).send();
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Powerstab special attack.
|
* Handles the Powerstab special attack.
|
||||||
|
|
@ -97,7 +97,7 @@ public final class PowerstabSpecialHandler extends MeleeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.DRAGON_AXE_THUNDER_2530, 10, 0, true, entity.asPlayer().getLocation(), 6);
|
playGlobalAudio(entity.getLocation(), Sounds.DRAGON_AXE_THUNDER_2530);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the puncture special attack combat swing.
|
* Handles the puncture special attack combat swing.
|
||||||
|
|
@ -82,7 +82,7 @@ public final class PunctureSpecialHandler extends MeleeSwingHandler implements P
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.PUNCTURE_2537, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.PUNCTURE_2537);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.GameWorld;
|
import core.game.world.GameWorld;
|
||||||
import core.game.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
|
|
@ -15,7 +14,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the granite maul special attack.
|
* Handles the granite maul special attack.
|
||||||
|
|
@ -81,7 +80,7 @@ public final class QuickSmashSpecialHandler extends MeleeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.QUICKSMASH_2715, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.QUICKSMASH_2715);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
victim.animate(victim.getProperties().getDefenceAnimation());
|
victim.animate(victim.getProperties().getDefenceAnimation());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ public final class RampageSpecialHandler extends MeleeSwingHandler implements Pl
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
p.sendChat("Raarrrrrgggggghhhhhhh!");
|
p.sendChat("Raarrrrrgggggghhhhhhh!");
|
||||||
playAudio(entity.asPlayer(), Sounds.RAMPAGE_2538, 1);
|
playAudio(entity.asPlayer(), Sounds.RAMPAGE_2538);
|
||||||
p.visualize(ANIMATION, GRAPHIC);
|
p.visualize(ANIMATION, GRAPHIC);
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
int boost = 0;
|
int boost = 0;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
|
|
@ -14,7 +13,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Saradomin sword special attack.
|
* Handles the Saradomin sword special attack.
|
||||||
|
|
@ -77,7 +76,7 @@ public final class SaradominsLightningHandler extends MeleeSwingHandler implemen
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.GODWARS_SARADOMIN_MAGIC_IMPACT_3853, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.GODWARS_SARADOMIN_MAGIC_IMPACT_3853);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the Seercull's special attack which lowers the opponent's magic
|
* Represents the Seercull's special attack which lowers the opponent's magic
|
||||||
|
|
@ -69,7 +69,7 @@ public final class SeercullSpecialHandler extends RangeSwingHandler implements P
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.SOULSHOT_2546, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.SOULSHOT_2546);
|
||||||
victim.graphics(new Graphics(474));
|
victim.graphics(new Graphics(474));
|
||||||
int speed = (int) (35 + (entity.getLocation().getDistance(victim.getLocation()) * 10));
|
int speed = (int) (35 + (entity.getLocation().getDistance(victim.getLocation()) * 10));
|
||||||
entity.visualize(entity.getProperties().getAttackAnimation(), DRAWBACK_GFX);
|
entity.visualize(entity.getProperties().getAttackAnimation(), DRAWBACK_GFX);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Sever special attack.
|
* Handles the Sever special attack.
|
||||||
|
|
@ -80,7 +80,7 @@ public final class SeverSpecialHandler extends MeleeSwingHandler implements Plug
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.SEVER_2540, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.SEVER_2540);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
|
|
@ -14,7 +13,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Shatter special attack.
|
* Handles the Shatter special attack.
|
||||||
|
|
@ -66,7 +65,7 @@ public final class ShatterSpecialHandler extends MeleeSwingHandler implements Pl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.SHATTER_2541, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.SHATTER_2541);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,7 @@ import core.plugin.Initializable;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.*;
|
||||||
import static core.api.ContentAPIKt.stun;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the dragon spear special attack.
|
* Handles the dragon spear special attack.
|
||||||
|
|
@ -111,7 +110,7 @@ public final class ShoveSpecialHandler extends MeleeSwingHandler implements Plug
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.SHOVE_2544, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.SHOVE_2544);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Dragon claws special attack "Slice and Dice".
|
* Handles the Dragon claws special attack "Slice and Dice".
|
||||||
|
|
@ -104,7 +104,7 @@ public final class SliceAndDiceSpecialHandler extends MeleeSwingHandler implemen
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.PUNCTURE_2537, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.PUNCTURE_2537);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles Statius' Warhammer special attack - Smash.
|
* Handles Statius' Warhammer special attack - Smash.
|
||||||
|
|
@ -69,7 +69,7 @@ public final class SmashSpecialHandler extends MeleeSwingHandler implements Plug
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.TZHAAR_KET_OM_CRUSH_2520, 10, 0, true, entity.asPlayer().getLocation(), 4);
|
playGlobalAudio(entity.getLocation(), Sounds.TZHAAR_KET_OM_CRUSH_2520);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import core.game.node.entity.combat.RangeSwingHandler;
|
||||||
import core.game.world.GameWorld;
|
import core.game.world.GameWorld;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the magic shortbow special attack "Snapshot".
|
* Handles the magic shortbow special attack "Snapshot".
|
||||||
|
|
@ -102,7 +102,7 @@ public final class SnapshotSpecialHandler extends RangeSwingHandler implements P
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.SNAPSHOT_2545, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.SNAPSHOT_2545);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
int speed = (int) (27 + (entity.getLocation().getDistance(victim.getLocation()) * 5));
|
int speed = (int) (27 + (entity.getLocation().getDistance(victim.getLocation()) * 5));
|
||||||
Projectile.create(entity, victim, 249, 40, 36, 20, speed, 15, 11).send();
|
Projectile.create(entity, victim, 249, 40, 36, 20, speed, 15, 11).send();
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import core.tools.RandomFunction;
|
||||||
import core.game.node.entity.combat.RangeSwingHandler;
|
import core.game.node.entity.combat.RangeSwingHandler;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the Dorgeshuun crossbow's special attack - snipe.
|
* Represents the Dorgeshuun crossbow's special attack - snipe.
|
||||||
|
|
@ -71,7 +71,7 @@ public final class SnipeSpecialHandler extends RangeSwingHandler implements Plug
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.DTTD_BONE_CROSSBOW_SA_1080, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.DTTD_BONE_CROSSBOW_SA_1080);
|
||||||
entity.animate(ANIMATION);
|
entity.animate(ANIMATION);
|
||||||
Projectile.create(entity, victim, 698, 36, 25, 35, 72).send();
|
Projectile.create(entity, victim, 698, 36, 25, 35, 72).send();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles Vesta's Spear special attack - Spear Wall.
|
* Handles Vesta's Spear special attack - Spear Wall.
|
||||||
|
|
@ -96,7 +96,7 @@ public final class SpearWallSpecialHandler extends MeleeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.CLEAVE_2529, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.CLEAVE_2529);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Dragon halberd special attack.
|
* Handles the Dragon halberd special attack.
|
||||||
|
|
@ -159,7 +159,7 @@ public final class SweepSpecialHandler extends MeleeSwingHandler implements Plug
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.HALBERD_SWIPE_2533, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.HALBERD_SWIPE_2533);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
|
|
@ -15,7 +14,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the Warstrike special attack.
|
* Handles the Warstrike special attack.
|
||||||
|
|
@ -86,7 +85,7 @@ public final class WarstrikeSpecialHandler extends MeleeSwingHandler implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
playAudio(entity.asPlayer(), Sounds.GODWARS_SARADOMIN_MAGIC_CASTANDFIRE_3834, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.GODWARS_SARADOMIN_MAGIC_CASTANDFIRE_3834);
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import core.game.node.entity.combat.CombatStyle;
|
||||||
import core.game.node.entity.combat.MeleeSwingHandler;
|
import core.game.node.entity.combat.MeleeSwingHandler;
|
||||||
import core.game.node.entity.impl.Animator.Priority;
|
import core.game.node.entity.impl.Animator.Priority;
|
||||||
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.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.game.world.update.flag.context.Graphics;
|
import core.game.world.update.flag.context.Graphics;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
|
|
@ -15,7 +14,7 @@ import core.plugin.Initializable;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles Darklight's special attack, Weaken.
|
* Handles Darklight's special attack, Weaken.
|
||||||
|
|
@ -76,6 +75,6 @@ public final class WeakenSpecialHandler extends MeleeSwingHandler implements Plu
|
||||||
@Override
|
@Override
|
||||||
public void visualize(Entity entity, Entity victim, BattleState state) {
|
public void visualize(Entity entity, Entity victim, BattleState state) {
|
||||||
entity.visualize(ANIMATION, GRAPHIC);
|
entity.visualize(ANIMATION, GRAPHIC);
|
||||||
playAudio(entity.asPlayer(), Sounds.DARKLIGHT_WEAKEN_225, 10, 0, true, entity.asPlayer().getLocation(), 5);
|
playGlobalAudio(entity.getLocation(), Sounds.DARKLIGHT_WEAKEN_225);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
package content.global.handlers.item.withobject
|
package content.global.handlers.item.withobject
|
||||||
|
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
import core.game.world.update.flag.context.Animation
|
import core.game.world.update.flag.context.Animation
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import org.rs09.consts.Scenery
|
import org.rs09.consts.Scenery
|
||||||
import core.game.interaction.IntType
|
import core.game.interaction.IntType
|
||||||
import core.game.interaction.InteractionListener
|
import core.game.interaction.InteractionListener
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listener for filling empty ectophial
|
* Listener for filling empty ectophial
|
||||||
|
|
@ -18,14 +18,13 @@ class EctophialFillListener : InteractionListener {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val ANIMATION = Animation(1652)
|
private val ANIMATION = Animation(1652)
|
||||||
private val AUDIO = Audio(1132)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun defineListeners() {
|
override fun defineListeners() {
|
||||||
onUseWith(IntType.SCENERY, Items.ECTOPHIAL_4252, Scenery.ECTOFUNTUS_5282) { player, used, _ ->
|
onUseWith(IntType.SCENERY, Items.ECTOPHIAL_4252, Scenery.ECTOFUNTUS_5282) { player, used, _ ->
|
||||||
lock(player, 5)
|
lock(player, 5)
|
||||||
animate(player, ANIMATION)
|
animate(player, ANIMATION)
|
||||||
playAudio(player, AUDIO)
|
playAudio(player, Sounds.FILL_ECTOPLASM_1132)
|
||||||
|
|
||||||
submitIndividualPulse(player, object: Pulse(3) {
|
submitIndividualPulse(player, object: Pulse(3) {
|
||||||
override fun pulse(): Boolean {
|
override fun pulse(): Boolean {
|
||||||
|
|
|
||||||
|
|
@ -46,10 +46,10 @@ class WaterSourceListener : InteractionListener {
|
||||||
sendMessage(player, formatMsgText(used.name, vessel.fillMsg))
|
sendMessage(player, formatMsgText(used.name, vessel.fillMsg))
|
||||||
addItemOrDrop(player, vessel.output)
|
addItemOrDrop(player, vessel.output)
|
||||||
if(with.name.contains("well", ignoreCase = true)) {
|
if(with.name.contains("well", ignoreCase = true)) {
|
||||||
playAudio(player, getAudio(Sounds.WELL_FILL_2615, 1))
|
playAudio(player, Sounds.WELL_FILL_2615)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
playAudio(player, getAudio(Sounds.TAP_FILL_2609, 1))
|
playAudio(player, Sounds.TAP_FILL_2609)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import core.game.interaction.InteractionListener
|
||||||
import core.game.node.entity.combat.DeathTask
|
import core.game.node.entity.combat.DeathTask
|
||||||
import core.game.node.entity.npc.NPC
|
import core.game.node.entity.npc.NPC
|
||||||
import core.game.node.entity.npc.NPCBehavior
|
import core.game.node.entity.npc.NPCBehavior
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
import core.game.world.update.flag.context.Animation
|
import core.game.world.update.flag.context.Animation
|
||||||
|
|
@ -75,7 +74,7 @@ class SheepBehavior : NPCBehavior(*sheepIds), InteractionListener {
|
||||||
setAttribute(player, ATTR_IS_PENGUIN_SHEEP_SHEARED, true)
|
setAttribute(player, ATTR_IS_PENGUIN_SHEEP_SHEARED, true)
|
||||||
}
|
}
|
||||||
animate(player, Animation(893))
|
animate(player, Animation(893))
|
||||||
playAudio(player, Audio(Sounds.PENGUINSHEEP_ESCAPE_686), false)
|
playAudio(player, Sounds.PENGUINSHEEP_ESCAPE_686)
|
||||||
sendMessage(player, "The... whatever it is... manages to get away from you!")
|
sendMessage(player, "The... whatever it is... manages to get away from you!")
|
||||||
animate(sheep, Animation(3570))
|
animate(sheep, Animation(3570))
|
||||||
sheep.moveStep()
|
sheep.moveStep()
|
||||||
|
|
@ -100,7 +99,7 @@ class SheepBehavior : NPCBehavior(*sheepIds), InteractionListener {
|
||||||
if (random != 4) {
|
if (random != 4) {
|
||||||
sheep.locks.lockMovement(2)
|
sheep.locks.lockMovement(2)
|
||||||
sheep.transform(NPCs.SHEEP_5153)
|
sheep.transform(NPCs.SHEEP_5153)
|
||||||
playAudio(player, Audio(Sounds.SHEAR_SHEEP_761), false)
|
playAudio(player, Sounds.SHEAR_SHEEP_761)
|
||||||
sendMessage(player, "You get some wool.")
|
sendMessage(player, "You get some wool.")
|
||||||
addItem(player, Items.WOOL_1737) // 5160
|
addItem(player, Items.WOOL_1737) // 5160
|
||||||
GameWorld.Pulser.submit(object : Pulse(80, sheep) {
|
GameWorld.Pulser.submit(object : Pulse(80, sheep) {
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ import core.api.*
|
||||||
import core.game.interaction.IntType
|
import core.game.interaction.IntType
|
||||||
import core.game.interaction.InteractionListener
|
import core.game.interaction.InteractionListener
|
||||||
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.item.Item
|
import core.game.node.item.Item
|
||||||
import core.game.world.update.flag.context.Animation
|
import core.game.world.update.flag.context.Animation
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import org.rs09.consts.Scenery
|
import org.rs09.consts.Scenery
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
private const val GRAIN = Items.GRAIN_1947
|
private const val GRAIN = Items.GRAIN_1947
|
||||||
private const val SWEETCORN = Items.SWEETCORN_5986
|
private const val SWEETCORN = Items.SWEETCORN_5986
|
||||||
|
|
@ -20,7 +20,7 @@ private val HOPPER_CONTROLS = intArrayOf(Scenery.HOPPER_CONTROLS_2718, Scenery.H
|
||||||
private val FLOUR_BINS = intArrayOf(Scenery.FLOUR_BIN_1782, Scenery.FLOUR_BIN_5792, Scenery.FLOUR_BIN_22420, Scenery.FLOUR_BIN_22421, Scenery.FLOUR_BIN_24070, Scenery.FLOUR_BIN_36878)
|
private val FLOUR_BINS = intArrayOf(Scenery.FLOUR_BIN_1782, Scenery.FLOUR_BIN_5792, Scenery.FLOUR_BIN_22420, Scenery.FLOUR_BIN_22421, Scenery.FLOUR_BIN_24070, Scenery.FLOUR_BIN_36878)
|
||||||
private const val VARP = 695
|
private const val VARP = 695
|
||||||
private val ANIMATION = Animation(3571)
|
private val ANIMATION = Animation(3571)
|
||||||
private val SOUND = Audio(3189)
|
private val SOUND = Sounds.GIANT_ROC_APPROACHES_3189
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles interactions with windmills
|
* Handles interactions with windmills
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,7 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||||
player.getPacketDispatch().sendMessage("You must be level 30 agility or higher to climb down the rocks.");
|
player.getPacketDispatch().sendMessage("You must be level 30 agility or higher to climb down the rocks.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
playAudio(player, Sounds.CLIMBING_LOOP_2454, 6);
|
playAudio(player, Sounds.CLIMBING_LOOP_2454, 0, 6);
|
||||||
if (!scale) {
|
if (!scale) {
|
||||||
ForceMovement.run(player, player.getLocation(), end, Animation.create(740), Animation.create(740), Direction.WEST, 13).setEndAnimation(Animation.RESET);
|
ForceMovement.run(player, player.getLocation(), end, Animation.create(740), Animation.create(740), Direction.WEST, 13).setEndAnimation(Animation.RESET);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -223,7 +223,7 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||||
}
|
}
|
||||||
player.lock(4);
|
player.lock(4);
|
||||||
player.getPacketDispatch().sendMessage("You climb the low wall...");
|
player.getPacketDispatch().sendMessage("You climb the low wall...");
|
||||||
playAudio(player, Sounds.CLIMB_WALL_2453,10, 40);
|
playAudio(player, Sounds.CLIMB_WALL_2453, 40);
|
||||||
if (fail) {
|
if (fail) {
|
||||||
Location end = player.getLocation().transform(d, 1);
|
Location end = player.getLocation().transform(d, 1);
|
||||||
player.lock(3);
|
player.lock(3);
|
||||||
|
|
@ -247,10 +247,10 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||||
final boolean fail = player.getSkills().getLevel(Skills.AGILITY) < 75 && hasFailed(player);
|
final boolean fail = player.getSkills().getLevel(Skills.AGILITY) < 75 && hasFailed(player);
|
||||||
final Location end = player.getLocation().transform(dir.getStepX() * (fail ? 3 : 5), dir.getStepY() * (fail ? 3 : 5), 0);
|
final Location end = player.getLocation().transform(dir.getStepX() * (fail ? 3 : 5), dir.getStepY() * (fail ? 3 : 5), 0);
|
||||||
player.getPacketDispatch().sendMessage("You put your foot on the ledge and try to edge across...");
|
player.getPacketDispatch().sendMessage("You put your foot on the ledge and try to edge across...");
|
||||||
playAudio(player, Sounds.BALANCING_LEDGE_2451, 5);
|
playAudio(player, Sounds.BALANCING_LEDGE_2451, 0, 5);
|
||||||
if (fail) {
|
if (fail) {
|
||||||
player.lock(4);
|
player.lock(4);
|
||||||
playAudio(player, Sounds.FALL_LAND_2455, 10, 125);
|
playAudio(player, Sounds.FALL_LAND_2455, 125);
|
||||||
AgilityHandler.walk(player, -1, player.getLocation(), end, Animation.create(157 - diff), 0.0, "You slip and fall to the level below.");
|
AgilityHandler.walk(player, -1, player.getLocation(), end, Animation.create(157 - diff), 0.0, "You slip and fall to the level below.");
|
||||||
GameWorld.getPulser().submit(new Pulse(3, player) {
|
GameWorld.getPulser().submit(new Pulse(3, player) {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -297,13 +297,13 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||||
final boolean fail = player.getSkills().getLevel(Skills.AGILITY) >= 75 ? false : hasFailed(player) ;
|
final boolean fail = player.getSkills().getLevel(Skills.AGILITY) >= 75 ? false : hasFailed(player) ;
|
||||||
final Location end = object.getLocation().transform(object.getId() != 10868 ? dir : dir.getOpposite(), fail ? 2 : 5);
|
final Location end = object.getLocation().transform(object.getId() != 10868 ? dir : dir.getOpposite(), fail ? 2 : 5);
|
||||||
AgilityHandler.walk(player, fail ? -1 : 1, player.getLocation(), end, Animation.create(155), fail ? 0.0 : 56.4, fail ? null : "You walk carefully across the slippery plank...");
|
AgilityHandler.walk(player, fail ? -1 : 1, player.getLocation(), end, Animation.create(155), fail ? 0.0 : 56.4, fail ? null : "You walk carefully across the slippery plank...");
|
||||||
playAudio(player, Sounds.PLANKWALK_2480, 3);
|
playAudio(player, Sounds.PLANKWALK_2480, 0, 3);
|
||||||
if (fail) {
|
if (fail) {
|
||||||
GameWorld.getPulser().submit(new Pulse(2, player) {
|
GameWorld.getPulser().submit(new Pulse(2, player) {
|
||||||
@Override
|
@Override
|
||||||
public boolean pulse() {
|
public boolean pulse() {
|
||||||
final Location dest = transformLevel(end.transform(!custom ? 2 : 0, custom ? -2 : 0, 0));
|
final Location dest = transformLevel(end.transform(!custom ? 2 : 0, custom ? -2 : 0, 0));
|
||||||
playAudio(player, Sounds.FALL_LAND_2455, 10, 50);
|
playAudio(player, Sounds.FALL_LAND_2455, 50);
|
||||||
AgilityHandler.failWalk(player, 2, end, dest, dest, Animation.create(764), 10, 10, null);
|
AgilityHandler.failWalk(player, 2, end, dest, dest, Animation.create(764), 10, 10, null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -331,13 +331,13 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||||
}
|
}
|
||||||
dest = transformLevel(dest);
|
dest = transformLevel(dest);
|
||||||
player.lock(8);
|
player.lock(8);
|
||||||
playAudio(player, Sounds.JUMP_NO_LAND_2467, 10, 30);
|
playAudio(player, Sounds.JUMP_NO_LAND_2467, 30);
|
||||||
playAudio(player, Sounds.FALL_LAND_2455, 10, 200);
|
playAudio(player, Sounds.FALL_LAND_2455, 200);
|
||||||
AgilityHandler.forceWalk(player, -1, player.getLocation(), end, Animation.create(3068), 10, 0.0, "... and miss your footing.");
|
AgilityHandler.forceWalk(player, -1, player.getLocation(), end, Animation.create(3068), 10, 0.0, "... and miss your footing.");
|
||||||
AgilityHandler.fail(player, 8, dest, Animation.create(3068), 8, null);
|
AgilityHandler.fail(player, 8, dest, Animation.create(3068), 8, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
playAudio(player, Sounds.JUMP2_2462, 10 , 30);
|
playAudio(player, Sounds.JUMP2_2462, 30);
|
||||||
player.lock(4);
|
player.lock(4);
|
||||||
AgilityHandler.forceWalk(player, 2, player.getLocation(), player.getLocation().transform(dir, 3), Animation.create(3067), 20, 22, null);
|
AgilityHandler.forceWalk(player, 2, player.getLocation(), player.getLocation().transform(dir, 3), Animation.create(3067), 20, 22, null);
|
||||||
}
|
}
|
||||||
|
|
@ -355,7 +355,7 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||||
int mod = player.getLocation().equals(new Location(3359, 2849, 2)) ? 0 : player.getLocation().equals(new Location(3357, 2841, 2)) ? 1 : player.getLocation().equals(new Location(3367, 2832, 1)) ? 1 : player.getLocation().equals(new Location(3372, 2832, 1)) ? 0 : object.getLocation().equals(new Location(3370, 2831, 1)) ? 0 : rot == 1 && dir == Direction.EAST ? 0 : rot == 3 && (dir == Direction.WEST || dir == Direction.EAST) ? 1 : rot == 0 && dir == Direction.SOUTH ? 1 : dir == Direction.WEST && rot != 3 || dir == Direction.EAST ? 1 : 0;
|
int mod = player.getLocation().equals(new Location(3359, 2849, 2)) ? 0 : player.getLocation().equals(new Location(3357, 2841, 2)) ? 1 : player.getLocation().equals(new Location(3367, 2832, 1)) ? 1 : player.getLocation().equals(new Location(3372, 2832, 1)) ? 0 : object.getLocation().equals(new Location(3370, 2831, 1)) ? 0 : rot == 1 && dir == Direction.EAST ? 0 : rot == 3 && (dir == Direction.WEST || dir == Direction.EAST) ? 1 : rot == 0 && dir == Direction.SOUTH ? 1 : dir == Direction.WEST && rot != 3 || dir == Direction.EAST ? 1 : 0;
|
||||||
final Animation animation = Animation.create(387 - mod);
|
final Animation animation = Animation.create(387 - mod);
|
||||||
playAudio(player, Sounds.HANDHOLDS_GRAB_TO_SECOND_2450);
|
playAudio(player, Sounds.HANDHOLDS_GRAB_TO_SECOND_2450);
|
||||||
playAudio(player, Sounds.FALL_LAND_2455, 10, 170);
|
playAudio(player, Sounds.FALL_LAND_2455, 170);
|
||||||
if (fail) {
|
if (fail) {
|
||||||
Location dest = object.getLocation().transform(dir, 1);
|
Location dest = object.getLocation().transform(dir, 1);
|
||||||
dest = rot == 1 && dir == Direction.EAST ? dest.transform(1, 2, 0) : rot == 1 && dir == Direction.WEST && player.getLocation().getY() < 2841 ? dest.transform(0, -2, 0) : rot == 1 && dir == Direction.WEST ? dest.transform(0, 2, 0): dest.transform(dir == Direction.NORTH || dir == Direction.SOUTH ? -1 : dir == Direction.WEST ? 1 : 0, dir == Direction.SOUTH ? 1 : dir == Direction.WEST || dir == Direction.EAST ? -1 : 0, 0);
|
dest = rot == 1 && dir == Direction.EAST ? dest.transform(1, 2, 0) : rot == 1 && dir == Direction.WEST && player.getLocation().getY() < 2841 ? dest.transform(0, -2, 0) : rot == 1 && dir == Direction.WEST ? dest.transform(0, 2, 0): dest.transform(dir == Direction.NORTH || dir == Direction.SOUTH ? -1 : dir == Direction.WEST ? 1 : 0, dir == Direction.SOUTH ? 1 : dir == Direction.WEST || dir == Direction.EAST ? -1 : 0, 0);
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public final class MovingBlockNPC extends AbstractNPC {
|
||||||
getWalkingQueue().addPath(loc.getX(), loc.getY());
|
getWalkingQueue().addPath(loc.getX(), loc.getY());
|
||||||
for (Player p : RegionManager.getLocalPlayers(getTileLocations()[0], 4)) {
|
for (Player p : RegionManager.getLocalPlayers(getTileLocations()[0], 4)) {
|
||||||
checkBlock(p);
|
checkBlock(p);
|
||||||
playAudio(p, Sounds.PYRAMID_BLOCK_1395, 10, 30);
|
playAudio(p, Sounds.PYRAMID_BLOCK_1395, 30);
|
||||||
}
|
}
|
||||||
moving = true;
|
moving = true;
|
||||||
GameWorld.getPulser().submit(new Pulse(1, this) {
|
GameWorld.getPulser().submit(new Pulse(1, this) {
|
||||||
|
|
@ -137,7 +137,7 @@ public final class MovingBlockNPC extends AbstractNPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.lock(4);
|
player.lock(4);
|
||||||
playAudio(player, Sounds.LAND_FLAT_2469, 10 , 50);
|
playAudio(player, Sounds.LAND_FLAT_2469, 50);
|
||||||
player.setAttribute("block-move", GameWorld.getTicks() + 4);
|
player.setAttribute("block-move", GameWorld.getTicks() + 4);
|
||||||
if(dest != null) {
|
if(dest != null) {
|
||||||
AgilityHandler.failWalk(player, close ? 1 : 3, player.getLocation(), dest, AgilityPyramidCourse.transformLevel(dest), Animation.create(3066), 10, 8, null, getId() == 3124 ? Direction.WEST : Direction.SOUTH);
|
AgilityHandler.failWalk(player, close ? 1 : 3, player.getLocation(), dest, AgilityPyramidCourse.transformLevel(dest), Animation.create(3066), 10, 8, null, getId() == 3124 ? Direction.WEST : Direction.SOUTH);
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ public final class JewelleryPulse extends SkillPulse<Item> {
|
||||||
public void animate() {
|
public void animate() {
|
||||||
if (ticks % 5 == 0) {
|
if (ticks % 5 == 0) {
|
||||||
player.animate(ANIMATION);
|
player.animate(ANIMATION);
|
||||||
playAudio(player, Sounds.FURNACE_2725, 1);
|
playAudio(player, Sounds.FURNACE_2725);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ class SilverCraftingPulse(
|
||||||
}
|
}
|
||||||
|
|
||||||
animate(player, Animations.HUMAN_FURNACE_SMELTING_3243)
|
animate(player, Animations.HUMAN_FURNACE_SMELTING_3243)
|
||||||
playAudio(player, Sounds.FURNACE_2725, 1)
|
playAudio(player, Sounds.FURNACE_2725)
|
||||||
|
|
||||||
if (removeItem(player, Items.SILVER_BAR_2355, Container.INVENTORY)) {
|
if (removeItem(player, Items.SILVER_BAR_2355, Container.INVENTORY)) {
|
||||||
addItem(player, product.producedItemId, product.amountProduced)
|
addItem(player, product.producedItemId, product.amountProduced)
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ public final class SpinningPulse extends SkillPulse<Item> {
|
||||||
public void animate() {
|
public void animate() {
|
||||||
if (ticks % 5 == 0) {
|
if (ticks % 5 == 0) {
|
||||||
player.animate(ANIMATION);
|
player.animate(ANIMATION);
|
||||||
playAudio(player, Sounds.SPINNING_2590, 1);
|
playAudio(player, Sounds.SPINNING_2590);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ class PitfallListeners : InteractionListener {
|
||||||
|
|
||||||
player.setAttribute("pitfall:timestamp:${pit.location.x}:${pit.location.y}", System.currentTimeMillis())
|
player.setAttribute("pitfall:timestamp:${pit.location.x}:${pit.location.y}", System.currentTimeMillis())
|
||||||
setPitState(player, pit.location, 1)
|
setPitState(player, pit.location, 1)
|
||||||
playAudio(player, getAudio(Sounds.HUNTING_PLACEBRANCHES_2639))
|
playAudio(player, Sounds.HUNTING_PLACEBRANCHES_2639)
|
||||||
val collapsePulse = object : Pulse(201, player) {
|
val collapsePulse = object : Pulse(201, player) {
|
||||||
override fun pulse(): Boolean {
|
override fun pulse(): Boolean {
|
||||||
val oldTime = player.getAttribute("pitfall:timestamp:${pit.location.x}:${pit.location.y}", System.currentTimeMillis())
|
val oldTime = player.getAttribute("pitfall:timestamp:${pit.location.x}:${pit.location.y}", System.currentTimeMillis())
|
||||||
|
|
@ -210,7 +210,7 @@ class PitfallListeners : InteractionListener {
|
||||||
if(dir != null) {
|
if(dir != null) {
|
||||||
val dst = src.transform(dir, 3)
|
val dst = src.transform(dir, 3)
|
||||||
ForceMovement.run(player, src, dst, ForceMovement.WALK_ANIMATION, Animation(1603), dir, 16)
|
ForceMovement.run(player, src, dst, ForceMovement.WALK_ANIMATION, Animation(1603), dir, 16)
|
||||||
playAudio(player, getAudio(Sounds.HUNTING_JUMP_2635))
|
playAudio(player, Sounds.HUNTING_JUMP_2635)
|
||||||
val pitfall_npc: Entity? = player.getAttribute("pitfall_npc", null)
|
val pitfall_npc: Entity? = player.getAttribute("pitfall_npc", null)
|
||||||
if(pitfall_npc != null && pitfall_npc.getLocation().getDistance(src) < 3.0) {
|
if(pitfall_npc != null && pitfall_npc.getLocation().getDistance(src) < 3.0) {
|
||||||
val last_pit_loc: Location? = pitfall_npc.getAttribute("last_pit_loc", null)
|
val last_pit_loc: Location? = pitfall_npc.getAttribute("last_pit_loc", null)
|
||||||
|
|
@ -248,7 +248,7 @@ class PitfallListeners : InteractionListener {
|
||||||
}
|
}
|
||||||
on(SPIKED_PIT, IntType.SCENERY, "dismantle") { player, node ->
|
on(SPIKED_PIT, IntType.SCENERY, "dismantle") { player, node ->
|
||||||
val pit = node as Scenery
|
val pit = node as Scenery
|
||||||
playAudio(player, getAudio(Sounds.HUNTING_TAKEBRANCHES_2649))
|
playAudio(player, Sounds.HUNTING_TAKEBRANCHES_2649)
|
||||||
player.removeAttribute("pitfall:timestamp:${pit.location.x}:${pit.location.y}")
|
player.removeAttribute("pitfall:timestamp:${pit.location.x}:${pit.location.y}")
|
||||||
player.incrementAttribute("pitfall:count", -1)
|
player.incrementAttribute("pitfall:count", -1)
|
||||||
setPitState(player, pit.location, 0)
|
setPitState(player, pit.location, 0)
|
||||||
|
|
@ -281,7 +281,7 @@ class PitfallListeners : InteractionListener {
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
entity.attack(player)
|
entity.attack(player)
|
||||||
playAudio(player, getAudio(Sounds.HUNTING_TEASE_FELINE_2651))
|
playAudio(player, Sounds.HUNTING_TEASE_FELINE_2651)
|
||||||
player.setAttribute("pitfall_npc", entity)
|
player.setAttribute("pitfall_npc", entity)
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
|
|
@ -295,7 +295,7 @@ class PitfallListeners : InteractionListener {
|
||||||
setPitState(player, pit.location, 0)
|
setPitState(player, pit.location, 0)
|
||||||
player.getSkills().addExperience(Skills.HUNTER, xp, true)
|
player.getSkills().addExperience(Skills.HUNTER, xp, true)
|
||||||
player.inventory.add(Item(Items.BIG_BONES_532))
|
player.inventory.add(Item(Items.BIG_BONES_532))
|
||||||
playAudio(player, getAudio(Sounds.HUNTING_TAKEBRANCHES_2649))
|
playAudio(player, Sounds.HUNTING_TAKEBRANCHES_2649)
|
||||||
// TODO: what's the actual probability of tatty vs perfect fur?
|
// TODO: what's the actual probability of tatty vs perfect fur?
|
||||||
val chance = RandomFunction.getSkillSuccessChance(50.0, 100.0, player.skills.getLevel(Skills.HUNTER))
|
val chance = RandomFunction.getSkillSuccessChance(50.0, 100.0, player.skills.getLevel(Skills.HUNTER))
|
||||||
if(RandomFunction.random(0.0, 100.0) < chance) {
|
if(RandomFunction.random(0.0, 100.0) < chance) {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ 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
|
||||||
import core.tools.SystemLogger
|
|
||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
import core.tools.Log
|
import core.tools.Log
|
||||||
import org.rs09.consts.Sounds
|
import org.rs09.consts.Sounds
|
||||||
|
|
@ -165,7 +164,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||||
fun reward(player: Player, success: Boolean) {
|
fun reward(player: Player, success: Boolean) {
|
||||||
player.lock()
|
player.lock()
|
||||||
player.animator.animate(if(success) KEBBIT_ANIM else MISS_ANIM)
|
player.animator.animate(if(success) KEBBIT_ANIM else MISS_ANIM)
|
||||||
playAudio(player, getAudio(Sounds.HUNTING_NOOSE_2637))
|
playAudio(player, Sounds.HUNTING_NOOSE_2637)
|
||||||
GameWorld.Pulser.submit(object : Pulse(KEBBIT_ANIM.duration){
|
GameWorld.Pulser.submit(object : Pulse(KEBBIT_ANIM.duration){
|
||||||
override fun pulse(): Boolean {
|
override fun pulse(): Boolean {
|
||||||
if(hasTrail(player) && success){
|
if(hasTrail(player) && success){
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ public final class BloodSpells extends CombatSpell {
|
||||||
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
||||||
}
|
}
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -102,14 +102,14 @@ public final class IceSpells extends CombatSpell {
|
||||||
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
||||||
}
|
}
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visualizeImpact(Entity entity, Entity target, BattleState state) {
|
public void visualizeImpact(Entity entity, Entity target, BattleState state) {
|
||||||
if (state.isFrozen()) {
|
if (state.isFrozen()) {
|
||||||
playGlobalAudio(target.getLocation(), impactAudio, 1, 20);
|
playGlobalAudio(target.getLocation(), impactAudio, 20);
|
||||||
target.graphics(BARRAGE_ORB);
|
target.graphics(BARRAGE_ORB);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ public final class MiasmicSpells extends CombatSpell {
|
||||||
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
||||||
}
|
}
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ import core.plugin.Initializable;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
import org.rs09.consts.Sounds;
|
import org.rs09.consts.Sounds;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
|
||||||
import static core.api.ContentAPIKt.playGlobalAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -100,7 +99,7 @@ public final class ShadowSpells extends CombatSpell {
|
||||||
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
||||||
}
|
}
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ public final class SmokeSpells extends CombatSpell {
|
||||||
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
||||||
}
|
}
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ public final class HumidifySpell extends MagicSpell {
|
||||||
p.lock(ANIMATION.getDuration() + 1);
|
p.lock(ANIMATION.getDuration() + 1);
|
||||||
p.animate(ANIMATION);
|
p.animate(ANIMATION);
|
||||||
p.graphics(GRAPHIC);
|
p.graphics(GRAPHIC);
|
||||||
playGlobalAudio(p.getLocation(), Sounds.LUNAR_HUMIDIFY_3614, 1, 20);
|
playGlobalAudio(p.getLocation(), Sounds.LUNAR_HUMIDIFY_3614, 20);
|
||||||
for (int k = 0; k < 28; k++) {
|
for (int k = 0; k < 28; k++) {
|
||||||
for (int i = 0; i < 21; i++) {
|
for (int i = 0; i < 21; i++) {
|
||||||
if (p.getInventory().contains(EMPTY[i], 1)) {
|
if (p.getInventory().contains(EMPTY[i], 1)) {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import core.game.node.entity.combat.ImpactHandler
|
||||||
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
|
||||||
import core.game.node.entity.player.link.TeleportManager
|
import core.game.node.entity.player.link.TeleportManager
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.node.entity.skill.Skills
|
import core.game.node.entity.skill.Skills
|
||||||
import core.game.node.item.Item
|
import core.game.node.item.Item
|
||||||
import core.game.node.scenery.Scenery
|
import core.game.node.scenery.Scenery
|
||||||
|
|
@ -40,91 +39,91 @@ class LunarListeners : SpellListener("lunar"), Commands {
|
||||||
|
|
||||||
onCast(Lunar.MOONCLAN_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.MOONCLAN_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,69, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,1), Item(Items.EARTH_RUNE_557,2)))
|
requires(player,69, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,1), Item(Items.EARTH_RUNE_557,2)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,66.0, Location.create(2111, 3916, 0))
|
sendTeleport(player,66.0, Location.create(2111, 3916, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.MOONCLAN_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.MOONCLAN_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,70, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,1), Item(Items.EARTH_RUNE_557,4)))
|
requires(player,70, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,1), Item(Items.EARTH_RUNE_557,4)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,67.0,"Moonclan Island",Location.create(2111, 3916, 0))
|
sendGroupTeleport(player,67.0,"Moonclan Island",Location.create(2111, 3916, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.OURANIA_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.OURANIA_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,71, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,1), Item(Items.EARTH_RUNE_557,6)))
|
requires(player,71, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,1), Item(Items.EARTH_RUNE_557,6)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,69.0, Location.create(2469, 3247, 0))
|
sendTeleport(player,69.0, Location.create(2469, 3247, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.WATERBIRTH_TELEPORT, NONE){ player, _ ->
|
onCast(Lunar.WATERBIRTH_TELEPORT, NONE){ player, _ ->
|
||||||
requires(player,72, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563), Item(Items.WATER_RUNE_555)))
|
requires(player,72, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563), Item(Items.WATER_RUNE_555)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,71.0, Location.create(2527, 3739, 0))
|
sendTeleport(player,71.0, Location.create(2527, 3739, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.WATERBIRTH_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.WATERBIRTH_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,73, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563), Item(Items.WATER_RUNE_555,5)))
|
requires(player,73, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563), Item(Items.WATER_RUNE_555,5)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,72.0,"Waterbirth Island", Location.create(2527, 3739, 0))
|
sendGroupTeleport(player,72.0,"Waterbirth Island", Location.create(2527, 3739, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.BARBARIAN_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.BARBARIAN_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,75, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.FIRE_RUNE_554,3)))
|
requires(player,75, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.FIRE_RUNE_554,3)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,76.0, Location.create(2544, 3572, 0))
|
sendTeleport(player,76.0, Location.create(2544, 3572, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.BARBARIAN_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.BARBARIAN_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,77, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.FIRE_RUNE_554,6)))
|
requires(player,77, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.FIRE_RUNE_554,6)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,77.0,"Barbarian Outpost", Location.create(2544, 3572, 0))
|
sendGroupTeleport(player,77.0,"Barbarian Outpost", Location.create(2544, 3572, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.KHAZARD_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.KHAZARD_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,78, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.WATER_RUNE_555,4)))
|
requires(player,78, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.WATER_RUNE_555,4)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,80.0, Location.create(2656, 3157, 0))
|
sendTeleport(player,80.0, Location.create(2656, 3157, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.KHAZARD_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.KHAZARD_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,79, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.WATER_RUNE_555,8)))
|
requires(player,79, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563,2), Item(Items.WATER_RUNE_555,8)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,81.0, "Port Khazard", Location.create(2656, 3157, 0))
|
sendGroupTeleport(player,81.0, "Port Khazard", Location.create(2656, 3157, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.FISHING_GUILD_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.FISHING_GUILD_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,85, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,10)))
|
requires(player,85, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,10)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,89.0, Location.create(2611, 3393, 0))
|
sendTeleport(player,89.0, Location.create(2611, 3393, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.FISHING_GUILD_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.FISHING_GUILD_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,86, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,14)))
|
requires(player,86, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,14)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,90.0,"Fishing Guild", Location.create(2611, 3393, 0))
|
sendGroupTeleport(player,90.0,"Fishing Guild", Location.create(2611, 3393, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.CATHERBY_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.CATHERBY_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,87, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,10)))
|
requires(player,87, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,10)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,92.0, Location.create(2804, 3433, 0))
|
sendTeleport(player,92.0, Location.create(2804, 3433, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.CATHERBY_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.CATHERBY_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,88, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,15)))
|
requires(player,88, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,15)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,93.0,"Catherby", Location.create(2804, 3433, 0))
|
sendGroupTeleport(player,93.0,"Catherby", Location.create(2804, 3433, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.ICE_PLATEAU_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.ICE_PLATEAU_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,89, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,8)))
|
requires(player,89, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,8)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendTeleport(player,96.0, Location.create(2972, 3873, 0))
|
sendTeleport(player,96.0, Location.create(2972, 3873, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
onCast(Lunar.ICE_PLATEAU_GR_TELEPORT, NONE) { player, _ ->
|
onCast(Lunar.ICE_PLATEAU_GR_TELEPORT, NONE) { player, _ ->
|
||||||
requires(player,90, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,16)))
|
requires(player,90, arrayOf(Item(Items.ASTRAL_RUNE_9075,3), Item(Items.LAW_RUNE_563,3), Item(Items.WATER_RUNE_555,16)))
|
||||||
playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
if (!player.isTeleBlocked) playGlobalAudio(player.location, Sounds.TELEPORT_ALL_200)
|
||||||
sendGroupTeleport(player,99.0, "Ice Plateau", Location.create(2972, 3873, 0))
|
sendGroupTeleport(player,99.0, "Ice Plateau", Location.create(2972, 3873, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -487,7 +486,7 @@ class LunarListeners : SpellListener("lunar"), Commands {
|
||||||
visualizeSpell(player, CURE_ME_ANIM, CURE_ME_GFX, 2880)
|
visualizeSpell(player, CURE_ME_ANIM, CURE_ME_GFX, 2880)
|
||||||
curePoison(player)
|
curePoison(player)
|
||||||
addXP(player, 69.0)
|
addXP(player, 69.0)
|
||||||
playAudio(player, Audio(2900))
|
playAudio(player, Sounds.LUNAR_CURE_OTHER_INDIVIDUAL_2900)
|
||||||
sendMessage(player, "You have been cured of poison.")
|
sendMessage(player, "You have been cured of poison.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -505,7 +504,7 @@ class LunarListeners : SpellListener("lunar"), Commands {
|
||||||
}
|
}
|
||||||
curePoison(acct)
|
curePoison(acct)
|
||||||
sendMessage(acct, "You have been cured of poison.")
|
sendMessage(acct, "You have been cured of poison.")
|
||||||
playAudio(acct, Audio(2889), true)
|
playGlobalAudio(acct.location, Sounds.LUNAR_CURE_OTHER_INDIVIDUAL_2889)
|
||||||
visualize(acct, -1, CURE_GROUP_GFX)
|
visualize(acct, -1, CURE_GROUP_GFX)
|
||||||
}
|
}
|
||||||
addXP(player, 74.0)
|
addXP(player, 74.0)
|
||||||
|
|
@ -533,7 +532,7 @@ class LunarListeners : SpellListener("lunar"), Commands {
|
||||||
player.face(p)
|
player.face(p)
|
||||||
visualizeSpell(player, CURE_OTHER_ANIM, CURE_OTHER_GFX, 2886)
|
visualizeSpell(player, CURE_OTHER_ANIM, CURE_OTHER_GFX, 2886)
|
||||||
visualize(p, -1, CURE_OTHER_GFX)
|
visualize(p, -1, CURE_OTHER_GFX)
|
||||||
playAudio(p, Audio(2889), true)
|
playGlobalAudio(p.location, Sounds.LUNAR_CURE_OTHER_INDIVIDUAL_2889)
|
||||||
removeRunes(player, true)
|
removeRunes(player, true)
|
||||||
curePoison(p)
|
curePoison(p)
|
||||||
sendMessage(p, "You have been cured of poison.")
|
sendMessage(p, "You have been cured of poison.")
|
||||||
|
|
|
||||||
|
|
@ -193,19 +193,19 @@ public final class GodSpells extends CombatSpell {
|
||||||
if (state.getEstimatedHit() == -1) {
|
if (state.getEstimatedHit() == -1) {
|
||||||
target.graphics(SPLASH_GRAPHIC);
|
target.graphics(SPLASH_GRAPHIC);
|
||||||
if (projectile == SARA_PROJECTILE) {
|
if (projectile == SARA_PROJECTILE) {
|
||||||
playGlobalAudio(target.getLocation(), Sounds.SARADOMIN_STRIKE_FAIL_1656, 1, 20);
|
playGlobalAudio(target.getLocation(), Sounds.SARADOMIN_STRIKE_FAIL_1656, 20);
|
||||||
}
|
}
|
||||||
if (projectile == GUTHIX_PROJECTILE) {
|
if (projectile == GUTHIX_PROJECTILE) {
|
||||||
playGlobalAudio(target.getLocation(), Sounds.CLAWS_OF_GUTHIX_FAIL_1652, 1, 20);
|
playGlobalAudio(target.getLocation(), Sounds.CLAWS_OF_GUTHIX_FAIL_1652, 20);
|
||||||
}
|
}
|
||||||
if (projectile == ZAM_PROJECTILE) {
|
if (projectile == ZAM_PROJECTILE) {
|
||||||
playGlobalAudio(target.getLocation(), Sounds.FLAMES_OF_ZAMORAK_FAIL_1654, 1, 20);
|
playGlobalAudio(target.getLocation(), Sounds.FLAMES_OF_ZAMORAK_FAIL_1654, 20);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
target.graphics(endGraphic);
|
target.graphics(endGraphic);
|
||||||
playGlobalAudio(target.getLocation(), impactAudio, 1);
|
playGlobalAudio(target.getLocation(), impactAudio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -256,7 +256,7 @@ class ModernListeners : SpellListener("modern"){
|
||||||
player.animate(Animation(if (high) 713 else 712))
|
player.animate(Animation(if (high) 713 else 712))
|
||||||
player.graphics(Graphics(if (high) 113 else 112))
|
player.graphics(Graphics(if (high) 113 else 112))
|
||||||
}
|
}
|
||||||
playAudio(player, Audio(if (high) 97 else 98))
|
playAudio(player, if (high) Sounds.HIGH_ALCHEMY_97 else Sounds.LOW_ALCHEMY_98)
|
||||||
|
|
||||||
if (coins.amount > 0)
|
if (coins.amount > 0)
|
||||||
player.inventory.add(coins)
|
player.inventory.add(coins)
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,16 @@
|
||||||
package content.global.skill.magic.modern
|
package content.global.skill.magic.modern
|
||||||
|
|
||||||
import core.api.getAudio
|
import core.api.*
|
||||||
import core.api.playAudio
|
|
||||||
import core.api.sendMessage
|
|
||||||
import core.game.node.entity.Entity
|
import core.game.node.entity.Entity
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
import core.game.system.timer.PersistTimer
|
import core.game.system.timer.PersistTimer
|
||||||
|
|
||||||
class SpellCharge : PersistTimer (700, "magic:spellcharge") {
|
class SpellCharge : PersistTimer (700, "magic:spellcharge") {
|
||||||
override fun run (entity: Entity) : Boolean {
|
override fun run (entity: Entity) : Boolean {
|
||||||
if (entity !is Player) return false
|
if (entity !is Player) return false
|
||||||
sendMessage(entity, "Your magical charge fades away.")
|
sendMessage(entity, "Your magical charge fades away.")
|
||||||
playAudio(entity, getAudio(1650))
|
playAudio(entity, Sounds.CHARGE_GONE_1650)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ public final class TeleblockSpell extends CombatSpell {
|
||||||
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
projectile.transform(entity, (Entity) target, false, 58, 10).send();
|
||||||
}
|
}
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ object EssenceTeleport {
|
||||||
npc.faceTemporary(player, 1)
|
npc.faceTemporary(player, 1)
|
||||||
npc.graphics(GLOWING_HANDS_GFX)
|
npc.graphics(GLOWING_HANDS_GFX)
|
||||||
lock(player,4)
|
lock(player,4)
|
||||||
playGlobalAudio(player.location, Sounds.CURSE_ALL_125, 1)
|
playGlobalAudio(player.location, Sounds.CURSE_ALL_125, 0, 1)
|
||||||
Projectile.create(npc, player, CURSE_PROJECTILE).send()
|
Projectile.create(npc, player, CURSE_PROJECTILE).send()
|
||||||
npc.sendChat("Senventior Disthine Molenko!")
|
npc.sendChat("Senventior Disthine Molenko!")
|
||||||
GameWorld.Pulser.submit(object : Pulse(1) {
|
GameWorld.Pulser.submit(object : Pulse(1) {
|
||||||
|
|
|
||||||
|
|
@ -9,15 +9,14 @@ import core.game.interaction.IntType
|
||||||
import core.game.interaction.InteractionListener
|
import core.game.interaction.InteractionListener
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.player.link.TeleportManager
|
import core.game.node.entity.player.link.TeleportManager
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
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.node.scenery.SceneryBuilder
|
import core.game.node.scenery.SceneryBuilder
|
||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
import core.game.world.map.Location
|
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.Log
|
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
import rs09.game.content.activity.castlewars.areas.CastleWarsWaitingArea
|
import rs09.game.content.activity.castlewars.areas.CastleWarsWaitingArea
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|
@ -80,7 +79,7 @@ class CastleWarsListeners : InteractionListener {
|
||||||
|
|
||||||
// If item is added to inventory, play pickup sound
|
// If item is added to inventory, play pickup sound
|
||||||
if (addItem(player, rewardItem)) {
|
if (addItem(player, rewardItem)) {
|
||||||
playAudio(player, Audio(2582))
|
playAudio(player, Sounds.PICK2_2582)
|
||||||
|
|
||||||
// Warn player inventory full using custom dialogue box
|
// Warn player inventory full using custom dialogue box
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -127,7 +126,7 @@ class CastleWarsListeners : InteractionListener {
|
||||||
// Bucket fill animation
|
// Bucket fill animation
|
||||||
animate(player, 832)
|
animate(player, 832)
|
||||||
// Bucket fill sound
|
// Bucket fill sound
|
||||||
playAudio(player, Audio(2609, 1))
|
playAudio(player, Sounds.TAP_FILL_2609)
|
||||||
// Replace empty -> full water bucket
|
// Replace empty -> full water bucket
|
||||||
replaceSlot(player, used.asItem().slot, Item(Items.BUCKET_OF_WATER_1929))
|
replaceSlot(player, used.asItem().slot, Item(Items.BUCKET_OF_WATER_1929))
|
||||||
return@onUseWith true
|
return@onUseWith true
|
||||||
|
|
@ -142,7 +141,7 @@ class CastleWarsListeners : InteractionListener {
|
||||||
// Delay sound to line up with "jump" movement
|
// Delay sound to line up with "jump" movement
|
||||||
runTask(player, 1) {
|
runTask(player, 1) {
|
||||||
// Play jumping sound
|
// Play jumping sound
|
||||||
playAudio(player, Audio(2461))
|
playAudio(player, Sounds.JUMP_2461)
|
||||||
}
|
}
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ public final class DesertZone extends MapZone implements Plugin<Object> {
|
||||||
p.getInventory().add(new Item(i.getId() + 2));
|
p.getInventory().add(new Item(i.getId() + 2));
|
||||||
p.animate(ANIMATION);
|
p.animate(ANIMATION);
|
||||||
p.getPacketDispatch().sendMessage("You take a drink of water.");
|
p.getPacketDispatch().sendMessage("You take a drink of water.");
|
||||||
playAudio(p, Sounds.LIQUID_2401, 1);
|
playAudio(p, Sounds.LIQUID_2401);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package content.region.fremennik.jatizso.handlers
|
||||||
|
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.game.node.entity.npc.NPC
|
import core.game.node.entity.npc.NPC
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
import core.game.world.map.Direction
|
import core.game.world.map.Direction
|
||||||
import core.game.world.map.Location
|
import core.game.world.map.Location
|
||||||
|
|
@ -11,6 +10,7 @@ import org.rs09.consts.NPCs
|
||||||
import content.region.fremennik.jatizso.dialogue.LeftieRightieDialogue
|
import content.region.fremennik.jatizso.dialogue.LeftieRightieDialogue
|
||||||
import core.game.interaction.InteractionListener
|
import core.game.interaction.InteractionListener
|
||||||
import core.game.interaction.IntType
|
import core.game.interaction.IntType
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
class JatizsoListeners : InteractionListener {
|
class JatizsoListeners : InteractionListener {
|
||||||
val GATES_CLOSED = intArrayOf(21403,21405)
|
val GATES_CLOSED = intArrayOf(21403,21405)
|
||||||
|
|
@ -71,7 +71,7 @@ class JatizsoListeners : InteractionListener {
|
||||||
replaceScenery(other.asScenery(), other.id, -1, Direction.SOUTH)
|
replaceScenery(other.asScenery(), other.id, -1, Direction.SOUTH)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
playAudio(player, getAudio(81))
|
playAudio(player, Sounds.NICEDOOR_OPEN_81)
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -121,7 +121,7 @@ class JatizsoListeners : InteractionListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
on(BELL, IntType.SCENERY, "ring-bell"){ player, _ ->
|
on(BELL, IntType.SCENERY, "ring-bell"){ player, _ ->
|
||||||
playAudio(player, Audio(15))
|
playAudio(player, Sounds.STEEL_15)
|
||||||
sendMessage(player, "You ring the warning bell, but everyone ignores it!")
|
sendMessage(player, "You ring the warning bell, but everyone ignores it!")
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package content.region.kandarin.seers.quest.elementalworkshop
|
package content.region.kandarin.seers.quest.elementalworkshop
|
||||||
|
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.node.entity.skill.Skills
|
import core.game.node.entity.skill.Skills
|
||||||
import core.game.node.item.Item
|
import core.game.node.item.Item
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
|
|
@ -65,14 +64,14 @@ class EWListeners : InteractionListener {
|
||||||
private val smithElementalShield = Animation(Animations.HUMAN_COOKING_RANGE_896)
|
private val smithElementalShield = Animation(Animations.HUMAN_COOKING_RANGE_896)
|
||||||
|
|
||||||
/* Sound effects */
|
/* Sound effects */
|
||||||
private val fillStoneBowlSFX = Audio(Sounds.FILL_STONE_BOWL_1537, 1)
|
private val fillStoneBowlSFX = Sounds.FILL_STONE_BOWL_1537
|
||||||
private val fillFurnaceWithLavaSFX = Audio(Sounds.FILL_FURNACE_WITH_LAVA_1538)
|
private val fillFurnaceWithLavaSFX = Sounds.FILL_FURNACE_WITH_LAVA_1538
|
||||||
private val pullLeverResetGatesSFX = Audio(Sounds.PULL_LEVER_RESET_GATE_1540)
|
private val pullLeverResetGatesSFX = Sounds.PULL_LEVER_RESET_GATE_1540
|
||||||
private val turnWaterControlsSFX = Audio(Sounds.TURN_METAL_WATER_VALVE)
|
private val turnWaterControlsSFX = Sounds.TURN_METAL_WATER_VALVE
|
||||||
private val pullLeverEnabledSFX = Audio(Sounds.PULL_LEVER_ENABLED_1547)
|
private val pullLeverEnabledSFX = Sounds.PULL_LEVER_ENABLED_1547
|
||||||
private val pullLeverDisabledSFX = Audio(Sounds.PULL_LEVER_DISABLED_1548)
|
private val pullLeverDisabledSFX = Sounds.PULL_LEVER_DISABLED_1548
|
||||||
private val bellowLeverSFX = Audio(Sounds.PULL_LEVER_GENERAL_2400)
|
private val bellowLeverSFX = Sounds.PULL_LEVER_GENERAL_2400
|
||||||
private val smithElementalShieldSFX = Audio(2721)
|
private val smithElementalShieldSFX = Sounds.ANVIL_4_2721
|
||||||
|
|
||||||
/* In-game locations */
|
/* In-game locations */
|
||||||
private val leftWaterControlsLocation = Location.create(2713, 9907, 0)
|
private val leftWaterControlsLocation = Location.create(2713, 9907, 0)
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
package content.region.morytania.quest.naturespirit
|
package content.region.morytania.quest.naturespirit
|
||||||
|
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
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
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
import core.game.world.update.flag.context.Animation
|
import core.game.world.update.flag.context.Animation
|
||||||
import core.game.world.update.flag.context.Graphics
|
import core.game.world.update.flag.context.Graphics
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
|
import core.game.dialogue.FacialExpression
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
class NSDrezelDialogue : DialogueFile() {
|
class NSDrezelDialogue : DialogueFile() {
|
||||||
var questStage = 0
|
var questStage = 0
|
||||||
|
|
@ -104,7 +104,7 @@ private class BlessingPulse(val drezel: NPC, val player: Player) : Pulse(){
|
||||||
|
|
||||||
override fun pulse(): Boolean {
|
override fun pulse(): Boolean {
|
||||||
when(ticks){
|
when(ticks){
|
||||||
0 -> animate(drezel, 1162).also { spawnProjectile(drezel, player, 268); playAudio(player, Audio(2674)) }
|
0 -> animate(drezel, 1162).also { spawnProjectile(drezel, player, 268); playAudio(player, Sounds.PRAYER_RECHARGE_2674) }
|
||||||
2 -> visualize(player, Animation(645), Graphics(267, 100))
|
2 -> visualize(player, Animation(645), Graphics(267, 100))
|
||||||
4 -> unlock(player).also { player.questRepository.getQuest("Nature Spirit").setStage(player, 40); return true }
|
4 -> unlock(player).also { player.questRepository.getQuest("Nature Spirit").setStage(player, 40); return true }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,6 @@ import core.game.system.config.ItemConfigParser
|
||||||
import core.game.system.config.ServerConfigParser
|
import core.game.system.config.ServerConfigParser
|
||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
import core.game.world.GameWorld.Pulser
|
import core.game.world.GameWorld.Pulser
|
||||||
import core.game.world.map.path.ProjectilePathfinder
|
|
||||||
import core.game.world.repository.Repository
|
import core.game.world.repository.Repository
|
||||||
import core.game.consumable.*
|
import core.game.consumable.*
|
||||||
import core.ServerConstants
|
import core.ServerConstants
|
||||||
|
|
@ -555,13 +554,6 @@ fun getWorldTicks(): Int {
|
||||||
return GameWorld.ticks
|
return GameWorld.ticks
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets an Audio object with specified id, volume, etc
|
|
||||||
*/
|
|
||||||
fun getAudio(id: Int, volume: Int = 10, delay: Int = 1): Audio {
|
|
||||||
return Audio(id, volume, delay)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plays a jingle by id
|
* Plays a jingle by id
|
||||||
* @param player the player to play the jingle for
|
* @param player the player to play the jingle for
|
||||||
|
|
@ -815,51 +807,33 @@ fun <T> animate(entity: Entity, anim: T, forced: Boolean = false) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Plays the given Audio for the given Entity
|
|
||||||
* @param player the player to play the audio for
|
|
||||||
* @param audio the Audio to play
|
|
||||||
* @param global if other nearby entities should be able to hear it
|
|
||||||
*/
|
|
||||||
fun playAudio(player: Player, audio: Audio, global: Boolean = false) {
|
|
||||||
player.audioManager.send(audio, global)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plays audio for the player
|
* Plays audio for the player
|
||||||
* @param player the player to play the defined audio for
|
* @param player the player to play the defined audio for
|
||||||
* @param audio the audio id to play
|
* @param audio the audio id to play
|
||||||
* @param volume the volume for the audio (for some audio ids it is used to define how many times to play/loop the audio)
|
|
||||||
* @param delay the delay in client cycles (50 cycles = 1 second)
|
* @param delay the delay in client cycles (50 cycles = 1 second)
|
||||||
* @param global if other nearby players should be able to hear the audio
|
* @param loops the number of times to loop audio (for some audio ids it is used to define how many times to loop the audio)
|
||||||
* @param location the location where the audio will play from (if a location is defined the sound will fade with distance)
|
* @param location the location where the audio will play from (The sound will fade with distance)
|
||||||
* @param radius the distance the audio can be heard from the defined location (default = 8 tiles if undefined)
|
* @param radius the distance the audio can be heard from the defined location (default = 8 tiles if undefined)
|
||||||
*/
|
*/
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
fun playAudio(player: Player, audio: Int, volume: Int = 10, delay: Int = 0, global: Boolean = false, location: Location? = null, radius: Int = 8) {
|
fun playAudio(player: Player, audio: Int, delay: Int = 0, loops: Int = 1, location: Location? = null, radius: Int = 8) {
|
||||||
if (global) {
|
PacketRepository.send(AudioPacket::class.java, DefaultContext(player, Audio(audio, loops, delay, radius), location))
|
||||||
val nearbyPlayers = RegionManager.getLocalPlayers(location ?: player.location, radius)
|
|
||||||
for ( player in nearbyPlayers ) {
|
|
||||||
PacketRepository.send(AudioPacket::class.java, DefaultContext(player, Audio(audio, volume, delay, radius), location))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
PacketRepository.send(AudioPacket::class.java, DefaultContext(player, Audio(audio, volume, delay, radius), location))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plays audio for players near a defined location
|
* Plays audio for players near a defined location
|
||||||
* @param location the location where the audio will play from (The sound will fade with distance)
|
* @param location the location where the audio will play from (The sound will fade with distance)
|
||||||
* @param audio the audio id to play
|
* @param audio the audio id to play
|
||||||
* @param volume the volume for the audio (for some audio ids it is used to define how many times to play/loop the audio)
|
|
||||||
* @param delay the delay in client cycles (50 cycles = 1 second)
|
* @param delay the delay in client cycles (50 cycles = 1 second)
|
||||||
|
* @param loops the number of times to loop audio (for some audio ids it is used to define how many times to loop the audio)
|
||||||
* @param radius the distance the audio can be heard from the defined location (default = 8 tiles if undefined)
|
* @param radius the distance the audio can be heard from the defined location (default = 8 tiles if undefined)
|
||||||
*/
|
*/
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
fun playGlobalAudio(location: Location, audio: Int, volume: Int = 10, delay: Int = 0, radius: Int = 8) {
|
fun playGlobalAudio(location: Location, audio: Int, delay: Int = 0, loops: Int = 1, radius: Int = 8) {
|
||||||
val nearbyPlayers = RegionManager.getLocalPlayers(location, radius)
|
val nearbyPlayers = RegionManager.getLocalPlayers(location, radius)
|
||||||
for (player in nearbyPlayers) {
|
for (player in nearbyPlayers) {
|
||||||
PacketRepository.send(AudioPacket::class.java, DefaultContext(player, Audio(audio, volume, delay, radius), location))
|
PacketRepository.send(AudioPacket::class.java, DefaultContext(player, Audio(audio, loops, delay, radius), location))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -872,9 +846,9 @@ fun playHurtAudio(player: Player, delay: Int = 0) {
|
||||||
val maleHurtAudio = intArrayOf(Sounds.HUMAN_HIT4_516, Sounds.HUMAN_HIT5_517, Sounds.HUMAN_HIT_518, Sounds.HUMAN_HIT_6_522)
|
val maleHurtAudio = intArrayOf(Sounds.HUMAN_HIT4_516, Sounds.HUMAN_HIT5_517, Sounds.HUMAN_HIT_518, Sounds.HUMAN_HIT_6_522)
|
||||||
val femaleHurtAudio = intArrayOf(Sounds.FEMALE_HIT_506, Sounds.FEMALE_HIT_507, Sounds.FEMALE_HIT2_508, Sounds.FEMALE_HIT_2_510)
|
val femaleHurtAudio = intArrayOf(Sounds.FEMALE_HIT_506, Sounds.FEMALE_HIT_507, Sounds.FEMALE_HIT2_508, Sounds.FEMALE_HIT_2_510)
|
||||||
if (player.isMale) {
|
if (player.isMale) {
|
||||||
playAudio(player, maleHurtAudio.random(), 10, delay)
|
playAudio(player, maleHurtAudio.random(), delay)
|
||||||
} else {
|
} else {
|
||||||
playAudio(player, femaleHurtAudio.random(), 10, delay)
|
playAudio(player, femaleHurtAudio.random(), delay)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,12 @@ import core.game.node.Node
|
||||||
import core.game.node.entity.combat.graves.GraveController
|
import core.game.node.entity.combat.graves.GraveController
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.player.info.login.PlayerParser
|
import core.game.node.entity.player.info.login.PlayerParser
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
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.system.config.ItemConfigParser
|
import core.game.system.config.ItemConfigParser
|
||||||
import content.global.skill.summoning.pet.Pets
|
import content.global.skill.summoning.pet.Pets
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the item drop/destroy/dissolve handler.
|
* Represents the item drop/destroy/dissolve handler.
|
||||||
|
|
@ -25,9 +25,9 @@ class DropListener : InteractionListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val DROP_COINS_SOUND = Audio(10, 1, 0)
|
private val DROP_COINS_SOUND = Sounds.EYEGLO_COIN_10
|
||||||
private val DROP_ITEM_SOUND = Audio(2739, 1, 0)
|
private val DROP_ITEM_SOUND = Sounds.PUT_DOWN_2739
|
||||||
private val DESTROY_ITEM_SOUND = Audio(4500, 1, 0)
|
private val DESTROY_ITEM_SOUND = Sounds.DESTROY_OBJECT_2381
|
||||||
@JvmStatic fun drop(player: Player, item: Item) : Boolean {
|
@JvmStatic fun drop(player: Player, item: Item) : Boolean {
|
||||||
return handleDropAction(player, item)
|
return handleDropAction(player, item)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import core.game.node.entity.combat.ImpactHandler
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.player.info.Rights
|
import core.game.node.entity.player.info.Rights
|
||||||
import core.game.node.entity.player.link.IronmanMode
|
import core.game.node.entity.player.link.IronmanMode
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import core.game.node.entity.skill.Skills
|
import core.game.node.entity.skill.Skills
|
||||||
import core.game.node.item.Item
|
import core.game.node.item.Item
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
|
|
@ -24,6 +23,7 @@ import core.game.world.map.zone.impl.WildernessZone
|
||||||
import core.game.world.repository.Repository
|
import core.game.world.repository.Repository
|
||||||
import core.tools.secondsToTicks
|
import core.tools.secondsToTicks
|
||||||
import core.tools.colorize
|
import core.tools.colorize
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
import java.util.Map
|
import java.util.Map
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
|
|
@ -122,7 +122,7 @@ class GraveController : PersistWorld, TickListener, InteractionListener, Command
|
||||||
player.skills.prayerPoints -= blessAmount
|
player.skills.prayerPoints -= blessAmount
|
||||||
setAttribute(g, "blessed", true)
|
setAttribute(g, "blessed", true)
|
||||||
|
|
||||||
playAudio(player, Audio(2674))
|
playAudio(player, Sounds.PRAYER_RECHARGE_2674)
|
||||||
animate(player, 645)
|
animate(player, 645)
|
||||||
|
|
||||||
val gOwner = Repository.uid_map[g.ownerUid]
|
val gOwner = Repository.uid_map[g.ownerUid]
|
||||||
|
|
@ -155,7 +155,7 @@ class GraveController : PersistWorld, TickListener, InteractionListener, Command
|
||||||
player.skills.prayerPoints -= restoreAmount
|
player.skills.prayerPoints -= restoreAmount
|
||||||
setAttribute(g, "repaired", true)
|
setAttribute(g, "repaired", true)
|
||||||
|
|
||||||
playAudio(player, Audio(2674))
|
playAudio(player, Sounds.PRAYER_RECHARGE_2674)
|
||||||
animate(player, 645)
|
animate(player, 645)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,12 +136,12 @@ public abstract class CombatSpell extends MagicSpell {
|
||||||
*/
|
*/
|
||||||
public void visualizeImpact(Entity entity, Entity target, BattleState state) {
|
public void visualizeImpact(Entity entity, Entity target, BattleState state) {
|
||||||
if (state.getEstimatedHit() == -1) {
|
if (state.getEstimatedHit() == -1) {
|
||||||
playGlobalAudio(target.getLocation(), Sounds.SPELLFAIL_227, 1, 20);
|
playGlobalAudio(target.getLocation(), Sounds.SPELLFAIL_227, 20);
|
||||||
target.graphics(SPLASH_GRAPHIC);
|
target.graphics(SPLASH_GRAPHIC);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
target.graphics(endGraphic);
|
target.graphics(endGraphic);
|
||||||
playGlobalAudio(target.getLocation(), impactAudio, 1, 20);
|
playGlobalAudio(target.getLocation(), impactAudio, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -173,7 +173,7 @@ public abstract class CombatSpell extends MagicSpell {
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ import core.tools.RandomFunction;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.playAudio;
|
|
||||||
import static core.api.ContentAPIKt.playGlobalAudio;
|
import static core.api.ContentAPIKt.playGlobalAudio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -161,7 +160,7 @@ public abstract class MagicSpell implements Plugin<SpellType> {
|
||||||
public void visualize(Entity entity, Node target) {
|
public void visualize(Entity entity, Node target) {
|
||||||
entity.graphics(graphic);
|
entity.graphics(graphic);
|
||||||
entity.animate(animation);
|
entity.animate(animation);
|
||||||
playGlobalAudio(entity.getLocation(), audio.getId(), 1, 20);
|
playGlobalAudio(entity.getLocation(), audio.getId(), 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,8 @@ import core.api.*
|
||||||
import core.tools.*
|
import core.tools.*
|
||||||
import core.game.node.entity.Entity
|
import core.game.node.entity.Entity
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.combat.ImpactHandler
|
|
||||||
import core.game.world.repository.Repository
|
|
||||||
import core.game.node.entity.player.link.audio.Audio
|
|
||||||
import org.json.simple.*
|
import org.json.simple.*
|
||||||
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A timer that replicates the behavior of poison immunity mechanics. Runs every tick.
|
* A timer that replicates the behavior of poison immunity mechanics. Runs every tick.
|
||||||
|
|
@ -35,11 +33,11 @@ class PoisonImmunity : PersistTimer (1, "poison:immunity", isSoft = true, flags
|
||||||
|
|
||||||
if (entity is Player && ticksRemaining == secondsToTicks(30)) {
|
if (entity is Player && ticksRemaining == secondsToTicks(30)) {
|
||||||
sendMessage(entity, colorize("%RYou have 30 seconds remaining on your poison immunity."))
|
sendMessage(entity, colorize("%RYou have 30 seconds remaining on your poison immunity."))
|
||||||
playAudio(entity, Audio(3120))
|
playAudio(entity, Sounds.CLOCK_TICK_1_3120, 0, 3)
|
||||||
}
|
}
|
||||||
else if (entity is Player && ticksRemaining == 0) {
|
else if (entity is Player && ticksRemaining == 0) {
|
||||||
sendMessage(entity, colorize("%RYour poison immunity has expired."))
|
sendMessage(entity, colorize("%RYour poison immunity has expired."))
|
||||||
playAudio(entity, Audio(2607))
|
playAudio(entity, Sounds.DRAGON_POTION_FINISHED_2607)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ticksRemaining > 0
|
return ticksRemaining > 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue