1
2
3
4 package spellcast.enchantment;
5
6 import spellcast.beings.IBeing;
7
8
9 /***
10 * The Paralysis <code>Enchantment</code>.
11 *
12 * @author Barrie Treloar
13 * @version $Revision: 1.1 $
14 */
15 public class ParalysisEnchantment extends EnchantmentImpl {
16 /*** Use serialVersionUID for interoperability. */
17 private static final long serialVersionUID = 1L;
18
19 /*** The duration for <code>ParalysisEnchantment</code>. */
20 private static final int DURATION = 1;
21
22 /*** The description for <code>ParalysisEnchantment</code>. */
23 private static final String DESCRIPTION =
24 "If the subject of the spell is a wizard, then on the turn the spell "
25 + "is cast, after gestures have been revealed, the caster selects one "
26 + "of the wizard's hands and on the next turn that hand is paralyzed "
27 + "into the position it is in this turn. If the wizard already had a "
28 + "paralyzed hand, it must be the same hand which is paralyzed again. "
29 + "Certain gestures remain the same but if the hand being paralyzed is "
30 + "performing a C, S or W it is instead paralyzed into F, D or P "
31 + " respectively, otherwise it will remain in the position written "
32 + "down (this allows repeated stabs). A favourite ploy is to "
33 + "continually paralyze a hand (F-F-F-F-F-F etc.) into a non-P gesture "
34 + "and then set a monster on the subject so that he has to use his "
35 + "other hand to protect himself, but then has no defence against "
36 + "other magical attacks. If the subject of the spell is a monster "
37 + "(excluding elementals which are unaffected) it simply does not "
38 + "attack in the turn following the one in which the spell was cast. "
39 + "If the subject of the spell is also the subject of any of "
40 + "'amnesia', 'confusion', 'charm person', 'charm monster' or 'fear', "
41 + "none of the spells work.";
42
43 /*** The name for <code>ParalysisEnchantment</code>. */
44 private static final String NAME = "Paralysis";
45
46 /***
47 * Provided for serialization, do not use as a constructor.
48 */
49 protected ParalysisEnchantment() {
50 }
51
52 /***
53 * Creates a new <code>ParalysisEnchantment</code> object.
54 *
55 * @param theCaster the <code>IBeing</code> casting the
56 * <code>Enchantment</code>.
57 * @param theTarget the <code>IBeing</code> that is the target of the
58 * <code>Enchantment</code>.
59 */
60 public ParalysisEnchantment(final IBeing theCaster, final IBeing theTarget) {
61 super(NAME, theCaster, theTarget);
62 setDuration(DURATION);
63 setDescription(DESCRIPTION);
64 }
65 }