Files
oboe/doc/editor/Specials.html

349 lines
23 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Special Encounters - BoE Scenario Editor Guide</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="navbar">
<script src='nav.js' type='application/javascript'></script>
<noscript>Javascript required for the navbar.</noscript>
</div>
<div class="content">
<h1>Section 10: Special Encounters</h1>
<p>When you walk into a room and a description comes up, that was a special encounter
(called a special, for short). When you enter a valley and monsters appear to attack you,
that was a special too. When you reach a locked door, and it's unlocked if you have the
right key, that is a special. In general, anything strange or out of the ordinary that
happens is a special encounter.</p>
<p>You can create special encounters yourself, and can make them very simple or very
elaborate. It can be as straightforward as a text description, or getting an item, or
taking damage, or as complicated as a huge branching tree of results, which depends on
what missions the party has completed so far (and thus what Stuff Done Flags have been set
so far).</p>
<p>When a special encounter is run by the game (by, for example, the party stepping on a
certain space) we say Blades of Exile has called the special. You can have Blades of Exile
call a special in a variety of ways. It can happen when the party looks at a space, or
steps on a space, or meets wandering monsters outdoors, or kills a certain monster, or
even casts Ritual of Sanctification on an evil altar. No matter when or how the special is
called, they are all created in the same way, and Blades of Exile runs through them in the
same way. Before this will make much sense, though, there needs to be some background on
how exactly special encounters work.</p>
<h2 id='intro'>Special Nodes</h2>
<p>The basic ingredient of a special encounter is called a special node. Each town and
outdoor section has a list of special nodes, and the scenario itself has a bunch of them
too. A special node is the basic building block of a special encounter.</p>
<p>What a special node is is an instruction. One sort of special node is Display Message,
which flashes up some sort of text. Another special node is Damage Party, which does
damage. There is a special node for poisoning the party, and another for giving the party
an item.</p>
<p>When a special encounter is called, what happens is that Blades of Exile looks at a
special node you create, and does the instruction in it (when this happens, we say Blades
of Exile calls the special node). One thing that a special node can do is say do
something, and then call another special node. This is called chaining. You can chain
several special nodes together, to make a long, complicated special encounter. For
example, suppose you want the party to be told they've been sprayed with poison gas, and
then damage and poison all of them. In this case, you would have Blades of Exile call a
special node which flashes up the message saying "You've been gassed!" and then calls another
special node. This next special node will damage the party and then call a third special
node. This third node will poison the party, and not specify any more nodes to be called.
In this case, you have created a special encounter which is a chain of special nodes,
three long.</p>
<p>Each town and outdoor section has its own set of special nodes. The scenario itself has
a set of global nodes. This multitude of special nodes will be the clay with which you can
sculpt a wild, elaborate adventure.</p>
<h2 id='pointer'>Pointers (Advanced)</h2>
<p>Pointers are an advanced feature of the special node engine. A pointer is a negative
number that references a Stuff Done Flag, allowing you to directly use the value of a
Stuff Done Flag as a parameter to a special node.</p>
<p>When the game calls a special node, it looks at the values it has. If any of them are
negative (more specifially, less than or equal to -10), the game checks to see if there is
a pointer with that number. If there is, the game fetches the value of a Stuff Done Flag
that the pointer points to, and substitutes that into the special node where the pointer
was specified.</p>
<p>There are 100 mutable pointers available, which can be set using the Set Pointer
special node. In addition, there are a number of reserved pointers that are set in certain
circumstances. Rather than referencing a Stuff Done Flag, these refer to special values of
the encounter itself. The reserved pointers are:</p>
<ol start=''>
<li value='8'>This can be used anywhere a message number is expected to refer to the
special string buffer. The contents of the special string buffer can be manipulated using
the Clear Buffer special node and various Append To Buffer special nodes.</li>
<li value='10'>This contains the X coordinate of the space the special node was triggered
on.</li>
<li>This contains the Y coordinate of the space the special node was triggered on.</li>
<li>This contains the terrain type of the space the special node was triggered on.</li>
<li value='15'>If the special node was called to determine the result of a custom trap
effect, this pointer refers to the trap level.</li>
<li value='20'>When a special node is called during an attack, this contains the number of
the targeted creature, ready to be passed to a Select Target special node.</li>
<li>When a special node is called during an attack, this contains the X coordinate of the
targeted space.</li>
<li>When a special node is called during an attack, this contains the Y coordinate of the
targeted space.</li>
</ol>
<h2 id='example'>Simple Examples</h2>
<p>Confused yet? Understandable. Creating a special encounter is a lot like writing a
short computer program. Writing computer programs is not incredibly difficult, but it does
take time to learn how to do it. Time and practice. Making special encounters is not
something you can learn to do overnight, but once you can do it, there is nothing that can
stop you from creating a truly great scenario.</p>
<p>And it really isn't that difficult. Here are three simple, step by step examples (and
there are several more examples in the appendices), which will show you much of the
process. Load up a scenario, such as the very basic scenario you created in the
introductory chapter. Select Edit Outdoor Terrain.</p>
<h3>Example 1</h3>
<p>First, we're going to create a simple text message, which will appear when a party steps
on a space. The fourth button in the third row is the Create/Edit special encounter
button. Press it, and then click on a spot of ordinary grass.</p>
<p>Wow. A pretty complicated dialog box just came up. This is the special encounter
editing box. It's not as bad as it looks. For now, we're just creating a text message. Press
General (a list of special node types will come up), select Display Message, and then
press OK. There. You are now editing a node of type Display Message. Now you need to write
the message. Notice that two of the fields below that buttons have changed to First Part
of Message and Second Part of Message, and that there is a button to the right marked
Create/Edit. Press it. This is where you edit the text that will come up. Type something,
like "You feel very weak and tired". and press return. You will be back on the special
editing window. Press OK.</p>
<p>That was it! Now, whenever a party steps on that space, they will see your text
message. If they step on it again, they will see it again. Notice the space is marked with
a small S icon. You can edit the encounter if you want. Press the same button (Create/Edit
Special) you pressed to create the encounter, and then click on the space with the S icon.
You will be editing the encounter again.</p>
<h3>Example 2</h3>
<p>Unfortunately, you probably don't want a message to keep reappearing every time they
step on a space. It gets annoying. Fortunately, you can have a message only appear once,
the very first time you step on it, and then never appear again. The way you do this is to
use a Stuff Done Flag. Pick a Stuff Done Flag to be attached to your text message, such
as, say, (3,4). This assumes you havent used (3,4) already.</p>
<p>You are going to create a special encounter which when it is first stepped on displays
the text message and sets the Stuff Done Flag (3,4) to 250. The Stuff Done Flag being set
to 250 tells Blades of Exile that this special encounter is dead and done and never comes
back again.</p>
<p>To create the encounter, first click on the special spot button terrain (third row,
sixth from left in the tools), and then place it on some grass. The white
spot marks a special encounter. Press the Create/Edit Special button, and click on this
spot.</p>
<p>Special encounters that only happen once are listed under One Shots, so press the One
Shots button. Select One-Time Text Message and press OK.</p>
<p>This looks very similar to the earlier special editing window, with one addition: it
now says Stuff Done Flag, First Part and Stuff Done Flag, Second Part by the top two text
areas. This is where you enter the Stuff Done Flag this encounter will be linked to. Enter
3 in the first box and 4 in the second to indicate Stuff Done Flag (3,4). Then press
Create/Edit to edit the message text, and finally press OK to finish editing the
special.</p>
<p>You may want to run the game now to see what happens. Step on the encounter, and you'll
see the text. After the encounter, notice that the white spot has disappeared. When you
put a One Shot special on a space with a white spot, Blades of Exile will make the spot
disappear after the special has been visited.</p>
<h3>Third Example</h3>
<p>Finally, we will create the earlier example of a chain of specials. This encounter will
put up a text message, damage the party, and poison them as well.</p>
<p>Press Create/Edit Special again, and click on a spot of grass. Press General, select
Display Message, press OK, and press Create/Edit to write some text. Write "You get hurt",
or whatever. That was the first node in the chain.</p>
<p>Now, we want this special encounter to do several things. We want several encounters
chained together. To do this, we need to tell this special node to call another node once
it is done. That is what Jump To means, at the bottom of the window. The Jump To special
is the special a node calls when it is done.</p>
<p>To make a special to be jumped to, press Create/Edit to the right of Jump To. The
special editing window will reset itself. You are now editing a different special node.
This special node will damage the party. Press Affect PCs, and select Do Damage. Now all
of the text areas on the special editing dialog have labels, waiting for you to provide
values.</p>
<p>For now, type 3 in Number of Dice, and 5 in Number of Sides on Dice. Put 2 in Extra
Damage and 1 in Type of Damage. This node will add up 3 random numbers from 1 to 5, add 2,
and do that amount of damage to each PC. The 1 indicates that the damage is fire damage
(damage types are described later on).</p>
<p>Note that there is a Create/Edit button to the right of the text message area. You can
press it to create another text message, which is displayed while the damage is being
done. Many of the special nodes have a button of this sort, so that you can accompany the
calling of the special node with text.</p>
<p>Now we need one more special node. To make the third node in the chain, we need to use
the Jump To field again. Press the Create/Edit button to the right of Jump To. You will
now be editing a third special node. Press Affect PCs again, and select Affect Status. New
messages have appeared by the text areas, asking for different values. Put a 2 in the
Amount (0 .. 8) field (for a small amount of poison), and 1 in the 0 - cure, 1 - inflict
area (since we want to cause poison, not cure it). Put 2 in the Which Status field. (This
means poison.) Press OK. Our special encounter is now complete.</p>
<p>Run the scenario again, and trigger this encounter. Your party will be damaged and
poisoned, as promised.</p>
<p></p>
<p>This is only scratching the surface of special encounters and what they can do. There
are If-Thens specials, which can call one of 2 or 3 different special nodes, depending on
some sort of condition (such as whether a Stuff Done Flag is a certain value, or whether
the party has enough gold). There are Town Specs: town specials, which can act as
stairways to move the party from one level to another, or fill areas with fire barriers or
ice walls. Read on, to find out the basics of special nodes, and how to work with
them.</p>
<h2 id='edit'>The Editing Dialog</h2>
<p>There are almost 200 different sorts of special nodes. These nodes, their effects, and
the values you need to give to determine exactly what they do are listed in the Special
Nodes section in the appendices. Reading through these is a great way to determine how
special encounters work and get ideas for things your scenario can do.</p>
<p>The special editing dialog has a number of fields and buttons on it, each of which
determine the traits of your special encounter.</p>
<p>For nearly all of the nodes in the fields below, if you place a -1 or leave a -1, that
means that there is no effect. If you leave -1s in the message areas for example, no message
will be displayed. Sometimes, leaving a field at -1 will prevent anything from happening.
Occasionally, -1 has a specific meaning other than "no effect".</p>
<p><br></p>
<p><b>Type Selection Buttons - </b>These seven buttons each bring up a list of one of the
different classes of special encounters. These classes, when they can be used (town nodes
have no effect outdoors, for example), and what they do are described in the Appendix on
special nodes.</p>
<p><b>Stuff Done flags - </b>Many special nodes either change or examine a Stuff Done
flag. Put the two parts of the required stuff done flag in these two text areas.
Sometimes, when a node uses these fields for a different purpose, a small button
will appear above the field. Click this button to choose the value from a list.</p>
<p><b>Message 1-3, Pict, Pict type -</b> Some special nodes display a piece of text on the
screen. Other special nodes display a dialog box, with text in the middle and a picture in
the upper left corner. The numbers for these messages and the number of the picture to
display can be put in these text fields. When attaching a simple text message (two
strings) to some other type of node, keep in mind that the text will display <i>after</i>
the main action of the node. For example, a Missile Animation node with attached text
messages will show the missile, then display the text. Similarly, a Pause special node will
display the text after the delay is complete.</p>
<p>Each picture and each text message has a number associated with it (for example, every
town has 100 text messages, numbered from 0 to 99). Most of the time, you really don't want
to have to worry about these. Fortunately, there is an easier way to deal with this. Press
the Create/Edit button to create and edit text messages, and press Choose to the right of
the picture text area to select a picture. These buttons only appear if you need to
specify a value.</p>
<p><b>Extra 1a, 1b, 1c, 2a, 2b, 2c -</b> Many special nodes require you to provide
different values, such as the amount of health to heal or the value to set a Stuff Done
Flag to or the number of an item to give. When you select a special node type, text will
appear to the left of these text fields prompting you to enter a value. Often, there
will be a Choose button to let you select the value from a list, or a Create/Edit button
to let you edit a message or a special node to call.</p>
<p><b>Jump To -</b> Some special nodes call a different special node which is specified in
one of the other fields. If this doesn't happen, and a special node is given in Jump To
(in other words, if the value there isn't -1), that special node will usually be called
when this special node is through.</p>
<p>These meanings for the fields are not without exceptions. Some fields sometimes mean
different things, and some nodes prevent the Jump To node from being called. These
exceptions are detailed in the descriptions of the individual nodes in the node list in
the appendices.</p>
<p></p>
<p><b>Inserting Special Nodes into a Chain - </b>Suppose you create a chain of 3 special
nodes, and then realize that you forgot something. Suppose you want to bring up a text
message, damage the party, and give them experience. You create special node 16 to bring
up a message, click on the Create/Edit button by the Jump To: slot to assign a new node
(you get node 17), make node 17 give experience, and then realize that you forgot to
include the Damage the Party node.</p>
<p>The Create/Edit button is to the right of a text field, in which you can enter the
number of the next special node to be called. When you press the Create/Edit button to get
a new special node, if the number in the text field is -1, you are assigned a new node. If
the number is 0 or larger, you will start editing that node.</p>
<p>For the example above, you can place a new special node inbetween 16 and 17 to damage
the party. Go to node 16 (of type Text Message). The Jump To is set to 17. Instead, set it
to -1 (enter -1 in the Jump To text field). Then press the Create/Edit button, and you
will be assigned a new node. Make that node the desired type (in this case, Damage the
Party), and set the Jump To field in the new node to 17. Voila! The chain is now 3 nodes
long.</p>
<h2 id='other'>Other Ways to Edit Specials</h2>
<p>When you select Edit Special Nodes from the Scenario, Town, or Outdoor menus, you will
see a list of all of the scenario, current town, or current outdoor section nodes. Click
on a node to edit it. For some dialog boxes in which a special node is asked for (like
Advanced Town Properties), there is not a Create/Edit button. To create a special
encounter for these features, make a special encounter in the Edit Special Nodes window,
remember the number of the first special node in the chain, and enter it into the
appropriate place (such as Special To Call When Town Entered in the Advanced Town
Properties window).</p>
<h2 id='calling'>What Nodes are Called When</h2>
<p>If you put a special encounter on the ground in town, it is called when the party walks
onto it. If you put a special encounter on a space the party can't walk onto, it is called
when the party searches that space (such as a Trap special node on a chest). If the
special node is triggered in town, a town special node is called. If the special node is
triggered while walking or searching outdoors, a special node from that outdoor section is
called. There are some cases when attempting to walk onto an impassable space will trigger
a special node: if the terrain on that space changes when stepped on (even if the terrain
it changes to is also impassable); if the terrain on that space is set to call a special
node when stepped on; or if the first node in the chain is a Prevent Action node.</p>
<p>Most of your special encounters will be called when the party walks onto a specified
space outdoors or in town. In addition, when the party sails a boat onto a special
encounter on the water, that encounter will be called.</p>
<p>Town special nodes can be called when entering town, when leaving town, when attempting
to talk to someone, when killing a monster, when seeing a monster, when the town goes
hostile (by stealing something or attacking someone), or when casting a spell on a
space.</p>
<p>Outdoor special nodes can be called when encountering monsters, when winning a battle,
or when fleeing from a battle.</p>
<p>Scenario special nodes are only called in a few different ways. You can use the General
type special node Call Global Special to call a scenario special node. Also, when a
special item is used, a Scenario special node is called. Other times when scenario special
nodes might be called are when you use a space, as part of a monster's move, when
attacking or being attacked, when purchasing something from a shop, or when dropping an
item on the ground.</p>
<p>You can specify a town special node to be called every so many turns while the party is
in a town (select Set Town Event Timers from the Town menu). You can also specify a
scenario special node to be called every so many moves no matter where the party is in the
scenario (select Set Scenario Event Timers from the Scenario menu).</p>
<p>Very importantly, you can have special nodes called during conversation. This is
described in more detail in the chapter on dialogue.</p>
<h2 id='time'>Time Passing</h2>
<p>When a party begins a scenario, the scenario will be set on day 1, and they won't have
done anything or completed any quests. As time passes and the party does things, you might
want the world and events to change in response to what the party does.</p>
<p>Every 3700 moves, the Day counter goes up by one. You can have If-Then special nodes
call different nodes based on whether a day has been reached. You can also have characters
appear or disappear based on what day it is. You set this on the Advanced Monster Settings
Dialog, described in the chapter on Editing Towns.</p>
<p>You may not always want things to change based on just what day it is, however. You may
want things to happen based on what the party actually does. In this case, you can use
Events. You can have as many events as you want, starting with event #1. An event can be
something like a town being reached, or a treasure being stolen, or a major creature being
killed. When something happens you want to be an Event, call a special node of type Major
Event Has Occured. For example, if you want the killing of the Goblin Chief to be Event 4,
have a special node called when that creature is killed. That node should, of course, be
of type Major Event Has Occured, set to Event 4.</p>
<p>The purpose of Events is determine whether things should happen in the scenario or
not. The occurance of an Event can prevent bad things from happening. For example, suppose
you want the goblin tribe to attack a town on day 90 and kill Fred, one of the characters
in the town. This will be prevented if the Goblin Chief is killed before day 90 (killing
the chief is Event 4).</p>
<p>When you place Fred in the town, bring up the Advanced Monster Settings Dialog, and set
When Is Creature Here to Disappear On Given Day. In the Day Creature Disappears field, enter
90 (for Day 90), and for the Event Code which prevents the disappearance (the second
field), enter 4. This character will disappear on day 90 unless Event 4 happens to prevent
it.</p>
<p>Similarly, when talking to characters, you can have their responses depend on whether
events have happened or not. Suppose Sue, in the same town, talks about Fred. Before Fred
dies, she says something nice about him. After he dies, she says he died. When writing
Sue's dialog, give her a dialogue node of type Depends On Time (and event). Set the day
the response changes (the first field) to 90, and the Event which prevents the change (the
second field) to 4. If Fred was killed (i.e. if the Goblin Chief was not killed before Day
90), she will respond with the second text field. Otherwise, she will respond with the
first.</p>
<p>Finally, you can use the If-Then Special Node Type 150: Special Thing happened?, which
calls different special nodes depending on whether a day has been reached and whether an
Event has happened before that day or not.</p>
<p>Using Events is a good way to spice up your scenario. By picking things that will
disappear and people that can die and Events to prevent those occurances, you can create
the feeling of the passing of time. This can create a real feeling of urgency in the
player!</p>
</div>
</body>
</html>