Skip to content

Add Tree Gnome Village quest. - #1368

Open
trunksbomb wants to merge 1 commit into
GregHib:mainfrom
trunksbomb:quest/tree-gnome-village
Open

trunksbomb wants to merge 1 commit into
GregHib:mainfrom
trunksbomb:quest/tree-gnome-village

Conversation

@trunksbomb

Copy link
Copy Markdown
Contributor

Tree Gnome Village quest working from start to finish.

  • Elkoy will gain "Follow" after starting the quest and being escorted out for the first time.
  • Adds dialogue to nearby NPCs as well such as Bolkoy and Lieutenant Schepbur.
  • All the animations were found in cache and play: ballista firing + ceremony emotes and animations.
  • Added custom behavior to Khazard Warlord so he will mimic the real behavior from the official game
  • Removed conditionless drop of orb of protection from Khazard commanders
  • Didn't bother adding proper squeeze-through animation because I already did in my Waterfall Quest PR
  • Spirit Trees now require completion of this quest when quests.requirements.skipMissing is true
  • Spirit Trees previously incorrectly checked for completion of The Grand Tree in order to use them instead of Tree Gnome Village. Now they check for the correct quest (the Stronghold tree still also checks for The Grand Tree completion, though)

I referenced these Youtube walkthroughs from 2011:

And then I filled in the remaining quest dialogue from the OSRS wiki. Two notable differences:

  • Newer video quest guides show that the orbs of protection from Khazard Warlord drop on the ground - old walkthroughs have it appear in your inventory automatically
  • The first Khazard commander shouting at you after you climb over the wall into the fortress used to say something else:

KC: What? How did you manage to get in here.
P: I've come for the orb.
KC: I'll never let you take it.

Modern versions have him shouting one thing and attacking, and the player doesn't respond:

Don't even think of taking the orb!

I went with the older version, of course.

Added generic Crates.kt to mimic Boxes.kt. Future crate-specific search functionality can go in here.

Elkoy will gain "Follow" after starting the quest and being escorted out for the first time.
Adds dialogue to naerby NPCs as well such as Bolkoy and Lieutenant Schepbur.
Quest is fully working from start to finish.
Added pre-quest interaction with Spirit Trees to indicate they don't want to talk.
Add generic `Crates.kt` to mimic `Boxes.kt`.
@trunksbomb trunksbomb changed the title implement Tree Gnome Village quest. Add Tree Gnome Village quest. Oct 5, 2026
}
cross(target, Direction.NORTH, "rocks_pile_climb")
if (entering && !get("tree_gnome_village_commander_met", false)) {
val commander = NPCs.at(tile.regionLevel).firstOrNull { it.id == "khazard_commander_battlefield" && it.tile.level == 0 && !it.dead }

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably easier to use findBySpawn

player<Neutral>("Hello, how are you?")
npc<Neutral>(id, "Oh my. I'll never find my way back before Khazard's men come and hunt me down.")
}
}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also use the quest stage name rather than id?

Suggested change
}
when(questStage("tree_gnome_village")) {
0 -> {
player<Neutral>("Hello.")
npc<Neutral>(id, "Gotta find a way out. We built this maze for protection but I can't get used to it. I'm always getting lost.")
}
9 -> {
player<Neutral>("Hello there, you look lost.")
npc<Neutral>(id, "Are you trying to be funny?")
player<Neutral>("No.")
npc<Neutral>(id, "Hmmm.")
}
8 -> {
player<Neutral>("Hello little man.")
npc<Neutral>(id, "Hello. I hope they come out and find me soon. It's getting cold.")
}
6..7 -> {
player<Neutral>("Hello there.")
npc<Neutral>(id, "Oh my, oh my, the village has been pillaged and I'm still lost. Oh dear.")
}
else -> {
player<Neutral>("Hello, how are you?")
npc<Neutral>(id, "Oh my. I'll never find my way back before Khazard's men come and hunt me down.")
}

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants