The harbor is the pre-expedition hub of The Curious Expedition.
Modding it allows you to offer quests, a variety of equipments or companions to the player.
The starting point for anything harbor is the harbor.conf.js file.
The evt-harbor-eventSelection event is the event that determines the flow of events in the harbor.
It will cause these things to happen in order:
- evt-harbor-afterMathCheck - This event will handle dealing with the aftermath of the last expedition
- evt-harbor-quest-completedCheck - This event handles ending the previous quest, if there was one.
- evt-harbor-quest-offer - This event handles offering a new quest to the player
- evt-harbor-recruit - This event lets the player recruit additional members for their trek.
- evt-harbor-countTrek - This event makes sure that the player doesn't progress through the harbor with too large a trek.
- evt-harbor-finalActions - This event lets the player make the final choices for the expedition, like animal upgrades or buying equipment.
Of course you are free to completely replace the harbor if you so please. That's what modding is all about.
You can choose a different event to happen instead of evt-harbor by changing the Config value cfg-specialEvents.harbor
The evt-harbor-afterMathCheck is mostly handled in harborAftermath.conf.js so that's a good place to look for examples.
But if you want to handle a new kind of aftermath after an expedition, you want to add a new event to the id: evt-harbor-afterMathCheck::events
For more deteiled instructions see: Adding a Quest
Adding a quest consists of adding three events to handle the giving, the setup and the checking of the quests completion.
Of course more events can be used in the game world to make the quest more interesting.
Add an event that checks for your quests completion to this to have it run when the quest completion is checked in the harbor.
Add an event to this in order to offer the quest to the player.
Add an event to this in order to change the game world and add quest relevant zones, fixtures or other things.
In order to allow the player to recruit a new character in the harbor you should add an event to evt-harbor-recruit-select::events
That event should include an npc and an npcEffect with an action to select recruitment. Examples can be found in harborRecruit.conf.js
The evt-harbor-equipment event in harborEquipment.conf.js is responsible for the equipment offers that the player gets.
If you want to add your item to the harbors shop, simply add it to the item lists in evt-harbor-equipment::charEffects.0.barter.items and evt-harbor-equipment::charEffects.1.barter.items.