Fixed up Dimintheis's Dialogue. Moved the trade furs achievement to FurClothingInterface since it's not a normal shop. fixed romily saying disappointed text when receiving wild pie.

This commit is contained in:
kennethedmonds 2025-11-03 18:07:01 -06:00
parent ef7ed6ed12
commit 298ac17cd6
4 changed files with 32 additions and 21 deletions

View file

@ -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
)
}
}
}

View file

@ -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?");

View file

@ -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
)
}
}
}
}
}
}

View file

@ -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()