Implement a quest system and job board
- The job board is loosely based on Exile III's job board; the dialog is converted from the one contained as a relic of E3 in BoE - Quest system is loosely based on a mix of Exile III jobs and Blades of Avernum quests - Talking to a monster (even a hostile one) can now trigger an arbitrary special node Dialog engine: - LED's now support wrapped labels
This commit is contained in:
@@ -137,12 +137,18 @@ the party is in town A, the response is Text 1. Otherwise, its Text 2.</p>
|
||||
</ol>
|
||||
<p>The possible shop types are as follows:</p>
|
||||
<ol start='0'>
|
||||
<li>Ordinary items shop; B is the number of the first item from the scenario's item list.</li>
|
||||
<li>Mage spells shop; B is the number of the first mage spell (0 - 61, but generally not lower than 30).</li>
|
||||
<li>Priest spells shop; B is the number of the first priest spell (0 - 61, but generally not lower than 30).</li>
|
||||
<li>Ordinary items shop; B is the number of the first item from the scenario's item
|
||||
list.</li>
|
||||
<li>Mage spells shop; B is the number of the first mage spell (0 - 61, but generally not
|
||||
lower than 30).</li>
|
||||
<li>Priest spells shop; B is the number of the first priest spell (0 - 61, but generally
|
||||
not lower than 30).</li>
|
||||
<li>Alchemy shop; B is the number of the first recipe (0 - 19).</li>
|
||||
<li>Healing shop; B and C are ignored.</li>
|
||||
<li>Random Items Shop, type 0. This brings up a shop window where the party can buy up to 10 randomly chosen items. These items are changed every 3000 moves, and are often magical. B and C are ignored for these shops.</li>
|
||||
<li>Random Items Shop, type 0. This brings up a shop window where the party can buy up to
|
||||
10 randomly chosen items. These items are changed every 3000 moves, and are often magical.
|
||||
There are five separate random lists maintained by the game. B and C are ignored for these
|
||||
shops.</li>
|
||||
<li>Random Items Shop, type 1.</li>
|
||||
<li>Random Items Shop, type 2.</li>
|
||||
<li>Random Items Shop, type 3.</li>
|
||||
@@ -154,20 +160,12 @@ is the response, the player gets to shop in a store called Fred's Fish. The pric
|
||||
quite cheap, and the player can buy items 193-207.</p>
|
||||
<p><b>Node Type 8 - Training</b> The training window immediately comes up. Text 1 & 2
|
||||
are ignored.</p>
|
||||
<p><b>Node Type 9 - Mage Spell Shop</b> Shop where the party can buy mage spells. A is the
|
||||
cost adjustment (Range 0 ... 6, see above). B is the number of the first spell sold in the
|
||||
shop (press the Choose button to select). C is the total number of spells sold in the
|
||||
shop, taken from the list of spells in the game, starting with B. Text 1 is the name of
|
||||
the shop.</p>
|
||||
<p><b>Node Type 10 - Priest Spell Shop</b> Exactly like Mage Spell Shop (above) but with
|
||||
Priest spells.</p>
|
||||
<p><b>Node Type 11 - Alchemy Shop </b>Shop where the party can buy alchemy recipes. A is
|
||||
the cost adjustment (Range 0 ... 6, see above. B is the number of the first recipe sold in
|
||||
the shop (press the Choose button to select). C is the total number of recipes sold in the
|
||||
shop, taken from the list of recipes in the game, starting with B. Text 1 is the name of
|
||||
the shop.</p>
|
||||
<p><b>Node Type 12 - Healer </b> Brings up the healing screen. A is the cost adjustment
|
||||
(Range 0 ... 6, see above) and Text 1 is the name of the healer.</p>
|
||||
<p><b>Node Type 9 - Job Board</b> Brings up the job board, where the player can choose to
|
||||
accept a job or quest. This could be something simple like delivering a message or
|
||||
package, or it could be something plot-relevant. A is the number of the job board to
|
||||
show. If the job board is angry at you for failing too many jobs, no job board will be
|
||||
shown and the response will be Text 2. Text 1 is currently ignored, but reserved to be a
|
||||
name for the job board.</p>
|
||||
|
||||
<h3>Item Button Talking Nodes</h3>
|
||||
|
||||
@@ -230,11 +228,13 @@ the number of the special item being sold. If they already have it, they are tol
|
||||
already have that". Otherwise, the cost of the item is B gold. If the party can afford it,
|
||||
they are told Text 1. Otherwise, they are told Text 2.</p>
|
||||
<p>Note: If you set the cost to 0, the party is always given the item.</p>
|
||||
<p><b>Node Type 23 - Special Item Shop</b> This brings up a shop window where the party
|
||||
can buy up to 10 randomly chosen items. These items are changed every 3000 moves, and are
|
||||
often magical. There are 5 different, independently maintained lists of items the shop can
|
||||
give. A is the cost adjustment of the shop (Range 0 ... 6, see above) and B is list of
|
||||
items to sell from (0 .. 4).</p>
|
||||
<p><b>Node Type 23 - Receive Quest</b> If quest A has been completed, the response is Text
|
||||
2 and nothing special happens. Otherwise, the party is given quest A (if they hadn't
|
||||
already received it) and the response is Text 1.</p>
|
||||
<p>Note: This node is not set up for the possibility that the quest somehow failed. If the
|
||||
quest is one that has a deadline or other failure condition, it might be better to instead
|
||||
use node types 29 or 30 to call a special node and check the quest's status before giving
|
||||
it.</p>
|
||||
<p><b>Node Type 24 - Reveal Town Location</b> Charges the party money, and enables them to
|
||||
enter a hidden town. The cost is A gold. If the party can afford it, they are told Text 1,
|
||||
and they will be able to see and enter town/dungeon number B. Otherwise, they are told
|
||||
|
@@ -468,6 +468,26 @@ to cause the game to crash since it won't know which town to get the node from.
|
||||
<dt>Extra 1a:</dt><dd>This specifies the personality to use for the conversation. A
|
||||
personality is defined as part of a town; see the chapter on Dialogue for
|
||||
details.</dd></dd>
|
||||
|
||||
<dt>Type 45: Update Quest</dt><dd>This special node allows you to set the status of one of
|
||||
the scenario's quests or jobs.
|
||||
<dl>
|
||||
<dt>Extra 1a:</dt><dd>The quest to update.</dd>
|
||||
<dt>Extra 1b:</dt><dd>The new status for the quest:
|
||||
<ol start='0'>
|
||||
<li>Marks the quest as not started. This might be useful if the quest is on a job board
|
||||
and you want it to be repeatable. Note however that marking a quest available does not
|
||||
grant automatic rewards.</li>
|
||||
<li>Marks the quest as started. If it wasn't already started, the game automatically fills
|
||||
in the quest's start day, and if Extra 2a is non-negative, the quest is considered to have
|
||||
come from the job board with that number.</li>
|
||||
<li>Marks the quest as complete. If the quest specifies automatic rewards, the game grants
|
||||
these to the party.</li>
|
||||
<li>Marks the quest as failed. If it came from a job board, the game increases the anger
|
||||
level of that job board. You can set Extra 2a if you want to increase the anger level even
|
||||
more. A job board won't offer any jobs if its anger level is 50 or more.</li>
|
||||
</ol>
|
||||
</dd></dd>
|
||||
</dl>
|
||||
|
||||
<h3>One-Shot Specials</h3>
|
||||
@@ -1192,22 +1212,33 @@ is called.
|
||||
<dt>Extra 1a:</dt><dd>If the Stuff Done flag equals this value, call special in Extra
|
||||
1b.</dd></dd>
|
||||
|
||||
<dt>Type 156: If Context?</dt>Result depends on how the special node was called.
|
||||
<dt>Type 156: If Context?</dt><dd>Result depends on how the special node was called.
|
||||
<dl>
|
||||
<dt>Extra 1a:</dt><dd>The context to test for. Click Choose to select one. If you want to check whether the party is in town, in combat, or outdoors, you probably want one of the first three options. To test for Ritual of Sanctification, use the Targeting Spell option and set Extra 1b to 108. Most of these contexts arise from special nodes assigned while editing monsters, items, town details, and other things, rather than special nodes assigned to a terrain space.</dd>
|
||||
<dt>Extra 1b:</dt><dd>The meaning of this field depends on the context. Usually it's not used. For the three movement contexts, 0 means you can enter the space and 1 means you can't. For the targeting spell context, setting this to something other than -1 means that the special in Extra 1c will only be called if the spell that was cast is equal to the spell that has the given number. Add 100 to indicate a priest spell. Item-only spells such as Wrack or Strengthen Target can also be tested for; just enter the same spell ID you would enter for the item ability.
|
||||
<dt>Extra 1b:</dt><dd>The meaning of this field depends on the context. Usually it's not used. For the three movement contexts, 0 means you can enter the space and 1 means you can't. For the targeting spell context, setting this to something other than -1 means that the special in Extra 1c will only be called if the spell that was cast is equal to the spell that has the given number. Add 100 to indicate a priest spell. Item-only spells such as Wrack or Strengthen Target can also be tested for; just enter the same spell ID you would enter for the item ability.</dd></dd>
|
||||
|
||||
<dt>Type 157: If Numeric Response?</dt>Result depends on a number entered by the player.
|
||||
<dt>Type 157: If Numeric Response?</dt><dd>Result depends on a number entered by the player.
|
||||
<!-- TODO: Document this. -->
|
||||
</dd>
|
||||
|
||||
<dt>Type 158: In Boat?</dt>Result depends whether the player is in a boat.
|
||||
<dt>Type 158: In Boat?</dt><dd>Result depends whether the player is in a boat.
|
||||
<dl>
|
||||
<dt>Extra 1b:</dt><dd>If left at -1, the special in Extra 1c is called if the player is in any boat. Otherwise, the special in Extra 1c is only called if the player is in the boat with that number.</dd></dd>
|
||||
<dt>Extra 1b:</dt><dd>If left at -1, the special in Extra 1c is called if the player is in
|
||||
any boat. Otherwise, the special in Extra 1c is only called if the player is in the boat
|
||||
with that number.</dd></dd>
|
||||
|
||||
<dt>Type 158: On Horse?</dt>Result depends whether the player is on horseback.
|
||||
<dt>Type 158: On Horse?</dt><dd>Result depends whether the player is on horseback.
|
||||
<dl>
|
||||
<dt>Extra 1b:</dt><dd>If left at -1, the special in Extra 1c is called if the player is on any horses. Otherwise, the special in Extra 1c is only called if the player is on the horses with that number.</dd></dd>
|
||||
<dt>Extra 1b:</dt><dd>If left at -1, the special in Extra 1c is called if the player is on
|
||||
any horses. Otherwise, the special in Extra 1c is only called if the player is on the
|
||||
horses with that number.</dd></dd>
|
||||
|
||||
<dt>Type 159: Quest Status?</dt><dd>Result depends on the status of a quest.
|
||||
<dl>
|
||||
<dt>Extra 1a:</dt><dd>The quest to check.</dd>
|
||||
<dt>Extra 1b:</dt><dd>If the quest has this status (0 - not started, 1 - started, 2 -
|
||||
completed, 3 - failed), the special in Extra 1c is called.</dd>
|
||||
<dt>Jumpto:</dt><dd>Otherwise, this special is called.</dd></dd>
|
||||
</dl>
|
||||
|
||||
<h3>Town Mode Specials</h3>
|
||||
|
Reference in New Issue
Block a user