diff --git a/Server/data/configs/npc_configs.json b/Server/data/configs/npc_configs.json index 96b4883b6..816287ac7 100644 --- a/Server/data/configs/npc_configs.json +++ b/Server/data/configs/npc_configs.json @@ -1264,12 +1264,12 @@ }, { "examine": "Like a mini man!", - "melee_animation": "422", - "range_animation": "422", + "melee_animation": "190", + "range_animation": "190", "magic_level": "1", - "defence_animation": "404", + "defence_animation": "193", "magic_animation": "422", - "death_animation": "9055", + "death_animation": "196", "name": "Gnome", "defence_level": "1", "safespot": null, @@ -1281,12 +1281,12 @@ }, { "examine": "Like a mini man!", - "melee_animation": "422", - "range_animation": "422", + "melee_animation": "190", + "range_animation": "190", "magic_level": "1", - "defence_animation": "404", + "defence_animation": "193", "magic_animation": "422", - "death_animation": "9055", + "death_animation": "196", "name": "Gnome", "defence_level": "1", "safespot": null, @@ -1298,12 +1298,12 @@ }, { "examine": "Like a mini man!", - "melee_animation": "422", - "range_animation": "422", + "melee_animation": "190", + "range_animation": "190", "magic_level": "1", - "defence_animation": "404", + "defence_animation": "193", "magic_animation": "422", - "death_animation": "9055", + "death_animation": "196", "name": "Gnome", "defence_level": "1", "safespot": null, @@ -1907,17 +1907,17 @@ }, { "examine": "Eeek! A ghost!", - "melee_animation": "5540", + "melee_animation": "5532", "range_animation": "0", "combat_audio": "436,439,438", "attack_speed": "4", "magic_level": "1", "respawn_delay": "40", - "defence_animation": "5541", + "defence_animation": "5533", "weakness": "5", "slayer_exp": "25", "magic_animation": "0", - "death_animation": "5542", + "death_animation": "5534", "name": "Ghost", "defence_level": "18", "safespot": null, @@ -2182,11 +2182,11 @@ "attack_speed": "4", "magic_level": "1", "respawn_delay": "25", - "defence_animation": "360", + "defence_animation": "4651", "weakness": "8", "slayer_exp": "75", "magic_animation": "359", - "death_animation": "361", + "death_animation": "4653", "name": "Cyclops", "defence_level": "35", "safespot": null, @@ -47336,12 +47336,15 @@ "attack_level": "1" }, { + "combat_audio": "931,923,922", + "melee_animation": "5578", + "defence_animation": "5567", "slayer_exp": "30", + "death_animation": "5569", "name": "Zombie", "defence_level": "1", "safespot": null, "lifepoints": "40", - "combat_audio": "931,923,922", "strength_level": "1", "id": "5394", "range_level": "1", @@ -76045,8 +76048,21 @@ "id": "2239" }, { + "examine": "Like a mini man!", + "combat_style": "1", + "force_talk": "", + "melee_animation": "190", + "attack_speed": "4", + "respawn_delay": "60", + "defence_animation": "193", + "death_animation": "196", "name": "Gnome", - "id": "2251" + "defence_level": "1", + "lifepoints": "3", + "strength_level": "1", + "id": "2251", + "range_level": "1", + "attack_level": "1" }, { "name": "Crow", diff --git a/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt b/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt index 9fe119605..04fe7686a 100644 --- a/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt +++ b/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt @@ -523,8 +523,7 @@ class Vinesweeper : InteractionListener, InterfaceListener, MapArea { sendNPCDialogue(player, npc.id, "I can't do that, you're teleblocked!", core.game.dialogue.FacialExpression.OLD_ANGRY1) return } - npc.animate(Animation(437)) - npc.faceTemporary(player, 1) + // https://youtu.be/61jVjmXf8tU?t=45 npc.graphics(Graphics(108)) player.lock() playAudio(player, Sounds.CURSE_ALL_125, 0, 1) diff --git a/Server/src/main/core/game/consumable/Potion.java b/Server/src/main/core/game/consumable/Potion.java index 60afb00c3..89912d9f1 100644 --- a/Server/src/main/core/game/consumable/Potion.java +++ b/Server/src/main/core/game/consumable/Potion.java @@ -1,12 +1,16 @@ package core.game.consumable; import content.data.consumables.Consumables; +import core.game.interaction.QueueStrength; 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.system.task.Pulse; +import core.game.world.GameWorld; +import core.game.world.update.flag.context.Animation; import org.rs09.consts.Sounds; -import static core.api.ContentAPIKt.playAudio; +import static core.api.ContentAPIKt.*; public class Potion extends Drink { @@ -15,7 +19,7 @@ public class Potion extends Drink { private static final Audio SOUND = new Audio(2401, 1, 1); public Potion(final int[] ids, final ConsumableEffect effect, final String... messages) { - super(ids, effect, messages); + super(ids, effect, new Animation(829), messages); } @Override @@ -55,13 +59,17 @@ public class Potion extends Drink { } final int dosesLeft = ids.length - consumedDoses; player.getPacketDispatch().sendMessage("You drink some of your " + getFormattedName(item) + "."); - if (dosesLeft > 1) { - player.getPacketDispatch().sendMessage("You have " + dosesLeft + " doses of potion left."); - } else if (dosesLeft == 1) { - player.getPacketDispatch().sendMessage("You have 1 dose of potion left."); - } else { - player.getPacketDispatch().sendMessage("You have finished your potion."); - } + // Remaining dosages message should be delayed - https://youtu.be/n6CCf4Rj8Lg?t=79 + queueScript(player, 2, QueueStrength.SOFT, false, (Integer stage) -> { + if (dosesLeft > 1) { + player.getPacketDispatch().sendMessage("You have " + dosesLeft + " doses of potion left."); + } else if (dosesLeft == 1) { + player.getPacketDispatch().sendMessage("You have 1 dose of potion left."); + } else { + player.getPacketDispatch().sendMessage("You have finished your potion."); + } + return stopExecuting(player); + }); } public int getDose(Item potion){