diff --git a/Server/src/main/content/global/handlers/iface/FurClothingInterface.kt b/Server/src/main/content/global/handlers/iface/FurClothingInterface.kt index e9025bad9..8e1ca000b 100644 --- a/Server/src/main/content/global/handlers/iface/FurClothingInterface.kt +++ b/Server/src/main/content/global/handlers/iface/FurClothingInterface.kt @@ -6,6 +6,7 @@ import core.game.component.ComponentDefinition import core.game.component.ComponentPlugin import core.game.container.access.InterfaceContainer import core.game.node.entity.player.Player +import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item import core.plugin.Initializable import core.plugin.Plugin @@ -165,6 +166,16 @@ class FurClothingInterface : ComponentPlugin(){ if (removeItem(player, requiredFur, Container.INVENTORY) && removeItem(player, coins, Container.INVENTORY)) { addItem(player, clothing.product.id, amount) + + // Trigger Varrock Hard Diary achievement for buying spottier cape + if (clothing == FUR_CLOTHING.DASH_CAPE) { + player.achievementDiaryManager.finishTask( + player, + DiaryType.VARROCK, + 2, // Hard tier + 9 // HardTasks.FANCY_DRESS_SELLER_TRADE_FURS + ) + } } } diff --git a/Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java index 03023f8e2..94d255a79 100644 --- a/Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java @@ -235,7 +235,7 @@ public class RomilyWeaklaxDialogue extends DialoguePlugin { npc("Oh, how splendid! Let me take that from you then."); player.getInventory().remove(new Item(Items.WILD_PIE_7208)); player.getAchievementDiaryManager().finishTask(player, DiaryType.VARROCK, 2, 5); - stage++; + stage = 104; break; case 103: npc("Oh, I see. Was there something else you needed?"); diff --git a/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt b/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt index 7b01d9b00..aa8f3305f 100644 --- a/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt +++ b/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt @@ -245,21 +245,6 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { ) } } - - 13109 -> { - // Fancy Dress Shop - buying spottier cape with furs - if (event.iface == 477 && event.buttonId == 26) { - // Verify they have the required items to make the purchase - if (player.inventory.contains(Items.DASHING_KEBBIT_FUR_10127, 2) && - player.inventory.contains(Items.COINS_995, 800)) { - finishTask( - player, - DiaryLevel.HARD, - HardTasks.FANCY_DRESS_SELLER_TRADE_FURS - ) - } - } - } } } } diff --git a/Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt index 763a03563..b0017e067 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt @@ -34,13 +34,22 @@ class DimintheisDialogue(player: Player? = null): core.game.dialogue.DialoguePlu if (questComplete && hasGauntlets) { npc("Thank you for saving our family honour, ", - "We will never forget you") + "We will never forget you.") stage = 1000 return true } if (questComplete && !hasGauntlets) { - player("I've lost the gauntlets you gave me") + // Get the gauntlet type that was lost + val gauntletId = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) + val gauntletName = when(gauntletId) { + Items.COOKING_GAUNTLETS_775 -> "cooking" + Items.GOLDSMITH_GAUNTLETS_776 -> "goldsmithing" //https://youtu.be/tpt3dXGydXo?si=AlEYXKQpwr0qvHin&t=422 + Items.CHAOS_GAUNTLETS_777 -> "chaos" + else -> "family" + } + npc("Your $gauntletName gauntlets returned to me through ", + "their magic power recently. Would you like them back?") stage = 6000 return true } @@ -171,15 +180,21 @@ class DimintheisDialogue(player: Player? = null): core.game.dialogue.DialoguePlu } } - 6000 -> npc("Not to worry, here they are").also { - stage = 1000 + 6000 -> options("Yes please.", "Not right now.").also { stage++ } + 6001 -> when(buttonId) { + 1 -> player("Yes please.").also { stage++ } + 2 -> player("Not right now.").also { stage = 1000 } + } + 6002 -> npc("Here you go.").also { stage++ } + 6003 -> { addItem(player, getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778)) player.achievementDiaryManager.finishTask( player, - core.game.node.entity.player.link.diary.DiaryType.VARROCK, + DiaryType.VARROCK, 2, // Hard tier (0=Easy, 1=Medium, 2=Hard) 9 // HardTasks.OBTAIN_NEW_SET_OF_FAMILY_CREST_GAUNTLETS ) + end() } 1000 -> end()