Add missing skill master skillcape dialogue - #1128
Open
HarleyGilpin wants to merge 1 commit into
Open
Conversation
Adds skillcape purchase dialogue for all remaining skill masters so
every Cape of Accomplishment is obtainable:
- New masters: Ajjat (Attack), Sloane (Strength), Cap'n Izzy No-Beard
(Agility), Master fisher (Fishing), Wilfred (Woodcutting), Gadrin
(Mining), Estate agent (Construction), Hunting expert (Hunter) and
Robe store owner (Magic, level-gated shop).
- Existing NPCs extended: Kuradal (Slayer), Thurgo (Smithing), Surgeon
General Tafani (Constitution) and Martin Thwait (Thieving, including
the 50 Thieving/50 Agility shop requirements).
Extracts the copy-pasted purchase transaction from the eight existing
masters into shared buySkillcape/skillcapeOffer/skillcapeMasterDialogue
helpers, keeping each NPC's bespoke lines.
Fixes along the way:
- Trimmed capes were given to everyone: the trim check compared
Constitution's max level (life points, 100 at level 10) against 99.
- Hickton's bought("fletching_cape_(t)") hook used a non-existent item
id, so trimmed cape buyers received no hood.
- Shop-sold capes (Ranged, Firemaking, Fletching, Runecrafting,
Thieving, Magic) now grant the free hood via a central bought hook.
- Skillcape shop selection opened the trimmed variant for players
without 99 in the shop's own skill; Aubury's cape shop was ungated
and never opened the trimmed variant.
- The buy_skillcape jingle is now played on every cape purchase.
GregHib
requested changes
Aug 3, 2026
| init { | ||
| // Skillcapes sold through shops come with a free hood, like the dialogue-sold capes. | ||
| bought("ranged_cape,ranged_cape_t,firemaking_cape,firemaking_cape_t,fletching_cape,fletching_cape_t,runecrafting_cape,runecrafting_cape_t,thieving_cape,thieving_cape_t,magic_cape,magic_cape_t") { item -> | ||
| inventory.add("${item.id.removeSuffix("_t").removeSuffix("_cape")}_hood") |
Owner
There was a problem hiding this comment.
Hood is already added in Skillcape.kt:L42 (where it should be) this one isn't needed,
Comment on lines
+30
to
+31
| println("DEBUG inv: " + player.inventory.items.filter { it.id.isNotEmpty() }) | ||
| println("DEBUG max: " + Skill.entries.associateWith { player.levels.getMax(it) }) |
Owner
There was a problem hiding this comment.
Suggested change
| println("DEBUG inv: " + player.inventory.items.filter { it.id.isNotEmpty() }) | |
| println("DEBUG max: " + Skill.entries.associateWith { player.levels.getMax(it) }) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds skillcape purchase dialogue for all remaining skill masters so every Cape of Accomplishment is obtainable (wiki reference).
New masters
Extended existing NPCs
Refactor
The purchase transaction copy-pasted across eight existing masters (MeleeTutor, BrotherJared, HeadChef, CraftingGuild, Kaqemeex, Pikkupstix, Martin, Thok) is extracted into shared
buySkillcape/skillcapeOffer/skillcapeMasterDialoguehelpers incontent/entity/player/dialogue/Skillcape.kt, keeping each NPC's bespoke lines. Also resolves Thok's// TODO proper messagebranches.Bug fixes
bought("fletching_cape_(t)")hook used a non-existent item id — trimmed cape buyers got no hood.bought()hook.buy_skillcapejingle (defined but unused) now plays on every cape purchase.Tests
AjjatTest(purchase/trimmed/gating/insufficient coins),GadrinTest,RobeStoreOwnerTest(shop gating),MartinThwaitTest(skill requirements),SkillcapesTest(free hood hook incl. trimmed Hickton regression). Full suite passes.