Expand three special node types

Can't Enter node renamed to Prevent Action, as it's a more accurate description of what it does. It has been expanded to cover the following cases, all of which are documented:
- When the special node was called during an attack action (which involves a weapon whose ability is to call a special node when attacking, or an item or monster ability that calls a special node when hit), then Prevent Action reverses the action point cost.
- When called as the result of a purchase (a shop item that calls a special), then Prevent Action prevents gold from being deducted (which is also new in this commit, as before it never deducted gold)
- When called as the result of using a normal item (not a special item), then Prevent Action prevents a charge from being deducted
- When called as the result of a monster using its ability, then Prevent Action prevents the action points from being deducted
- Cases it already covered (cancelling initiation of talk mode, searching of containers, outdoor wandering encounters) have been documented
- The fact that it will break things during talk mode is also documented now

Start Spell Targeting node has been tweaked and gained some new options:
- You can allow the player to target opaque or antimagic spaces. In town mode, you can prohibit them from targeting antimagic spaces.
- You can specify a special node to be called if targeting fails because they selected an invalid space, or because an special node keyed to spellcasting context cancelled it
- You no longer get a "Hit 'p' to cancel" message. Even better, hitting 'p' does not cancel it. (Well, more precisely, it triggers the failure node, with the party's or pc's location as the target space.)

Misc:
- Fix crash outdoors due to trying to check for force barriers
This commit is contained in:
2015-06-10 22:51:53 -04:00
parent a5a784c4f1
commit 6ef885c3ef
12 changed files with 184 additions and 56 deletions

View File

@@ -133,8 +133,27 @@ one at a time.
<dt>Mess2, Mess3:</dt><dd>The number of the first and last string to show in the dialog.</dd>
<dt>Pict, Pictype:</dt><dd>Specifies the icon to show in the dialog.</dd></dd>
<dt>Type 11: Can't Enter</dt><dd>If the party is walking, they are not allowed to enter
the space. This can be accompanied by one or two messages, if you wish.
<dt>Type 11: Prevent Action</dt><dd>If the party is walking, they are not allowed to enter
the space. This can be accompanied by one or two messages, if you wish. If called in other
circumstances, this node prevents the action that called the node. The following actions
are preventable in this manner:
<ul>
<li>Movement</li>
<li>Using an item - if it's a normal (not special) item, no charge will be deducted</li>
<li>Monster special actions - no AP will be deducted</li>
<li>Looking - you will not be allowed to search, but you can't prevent the party from
seeing what the space is</li>
<li>Talking - even if the creature has a personality, talk mode will not start</li>
<li>Attacking - the attack will occur normally, but no AP will be deducted from the
attacker</li>
<li>Shop Items - gold will not be deducted</li>
<!--<li>Dropping - TODO: currently unsupported, but maybe should be supported?</li> -->
<li>Targeting - if a spell is being targeted, the spell effect will be cancelled. However,
they will still lose their spell points. If the targeting was initiated by a special node,
that node's failure option will trigger, potentially calling another special node.</li>
<li>Encountering wandering monsters - the encounter will be prevented altogether, similar
to if the monsters had fled.</li>
</ul>
<dl>
<dt>Mess1, Mess2:</dt><dd>Standard usage. If the party is not moving, no messages are
displayed.</dd>
@@ -160,7 +179,9 @@ encounter on the pillar, and have a node of this type be the first special node
called. Set Extra 1a to 0 and Extra 2a to 1.</dd>
<dt>Note:</dt><dd>This doesn't have to be the last node in a chain. If this is the first
special node called, the party is still kept from entering the space... unless another
node of the same type undoes it.</dd></dd>
node of the same type undoes it. The only exception to this is forced passage, as the node
usually won't even be called if the space is impassable.</dd>
<dt>Warning:</dt><dd>Don't call this while talking. It will mess up your dialogue strings.</dd></dd>
<dt>Type 12: Change Time</dt><dd>This special node sets the adventure time forward.
<dl>
@@ -1681,6 +1702,18 @@ correctly even for the rotateable wall.
7 - rotateable 2x8 wall</dd>
<dt>Extra 1b:</dt><dd>Maximum range (combat mode only)</dd>
<dt>Extra 1c:</dt><dd>Maximum number of targets (combat mode only)</dd>
<dt>Extra 2a:</dt><dd>A special node to call if the targeting fails because the player
selected an invalid space, or because a special node on the space cancelled it.</dd>
<dt>Extra 2b:</dt><dd>Set this to 1 if you'd like the user to be able to select spaces
that are opaque (like the spell Dispel Barrier). This only has an effect in combat mode,
as town targeting places no such restriction.</dd>
<dt>Extra 2c:</dt><dd>Set this to 1 if you'd like the user to be able to target spaces
that are covered by an antimagic field. In order to preserve the meaning of antimagic
fields, it's recommended that you never use this unless the associated action is not
intended to be magical. Set it to 0 to prevent the user from targeting spaces in an
antimagic field. If left at -1, the default is used, which is to allow it in town mode but
not in combat. (This is probably a relic of the extremely limited selection of spells that
can be targeted in town mode.)</dd>
<dt>JumpTo:</dt><dd>This node is called once for every selected target.</dd></dd>
<dt>Type 201: Place Pattern (Fields/Objects)</dt><dd>Places fields according to a preset