![]() |
The characters |
The player and the other characters. Each but the player runs a script from a slot in CHARACTERS (CHARACTERS), the orders it will take at once are byte 6 of that slot (DO_TALK, DO_TALK), and its reactions are the entries of its script table keyed by an action (REACT, REACT). Carrying capacity is byte 3 of the record.
| No. | Character | Starts | Side | Str | Def | Carries | Script slot | Orders | Reacts to | Own handlers |
|---|---|---|---|---|---|---|---|---|---|---|
| $00 | you | tunnel like hall | the player's | 64 | 64 | 64 | - | - | - | EAT: DO_EAT after EAT: PLAYER_DIES |
| $3C | red golden dragon | lower halls | - | 192 | 192 | 96 | RED_GOLDEN_DRAGON_SLOT | 0 | ATTACK WITH | none |
| $3D | nasty goblin | dark stuffy passage | the goblins' | 72 | 96 | 48 | NASTY_GOBLIN_SLOT | 0 | ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: GOBLIN_RETURNS |
| $3E | gandalf | tunnel like hall | the player's | 112 | 136 | 96 | CHARACTERS | 5 | GIVE TO, CAPTURE, ATTACK WITH | none |
| $3F | thorin | tunnel like hall | the player's | 104 | 120 | 80 | THORIN_SLOT | 6 | GIVE TO, ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: THORIN_KILLED |
| $40 | wood elf | levelled elvish clearing | the elves' | 64 | 48 | 255 | WOOD_ELF_SLOT | 1 | ATTACK WITH, GIVE TO | none |
| $41 | elrond | rivendell | the player's, the elves' | 64 | 64 | 48 | ELROND_SLOT | 5 | ATTACK WITH, GIVE TO | none |
| $42 | butler | elvenkings cellar | the elves' | 32 | 112 | 48 | BUTLER_SLOT | 1 | ATTACK WITH, GIVE TO | none |
| $43 | vicious warg | treeless opening | - | 55 | 55 | 48 | VICIOUS_WARG_SLOT | 0 | - | none |
| $44 | gollum | deep dark lake | the goblins' | 32 | 64 | 5 | GOLLUM_SLOT | 3 | ATTACK WITH | none |
| $45 | hideous goblin | dark stuffy passage | the goblins' | 72 | 96 | 48 | HIDEOUS_GOBLIN_SLOT | 0 | ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: GOBLIN_RETURNS |
| $46 | bard | lake town | the player's | 96 | 96 | 16 | BARD_SLOT | 3 | ATTACK WITH | none |
| $47 | hideous troll | trolls clearing | - | 160 | 160 | 144 | HIDEOUS_TROLL_SLOT | 1 | ATTACK WITH | none |
| $48 | vicious troll | trolls clearing | - | 160 | 160 | 144 | VICIOUS_TROLL_SLOT | 1 | ATTACK WITH | none |
| $49 | horrible goblin | dark winding passage | the goblins' | 72 | 96 | 48 | HORRIBLE_GOBLIN_SLOT | 0 | ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: GOBLIN_RETURNS |
| $4A | mean goblin | dark stuffy passage | the goblins' | 72 | 96 | 48 | MEAN_GOBLIN_SLOT | 0 | ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: GOBLIN_RETURNS |
| $4B | vicious goblin | dark stuffy passage | the goblins' | 72 | 96 | 48 | VICIOUS_GOBLIN_SLOT | 0 | ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: GOBLIN_RETURNS |
| $4C | disgusting goblin | big goblins cavern | the goblins' | 72 | 96 | 48 | DISGUSTING_GOBLIN_SLOT | 0 | ATTACK WITH | ATTACK WITH: DO_ATTACK after ATTACK WITH: GOBLIN_RETURNS |
Each character works through a script a step at a time, each step an action it tries as if it had typed it (CHARACTERS_ACT, CHARACTERS_ACT). A step that names no object acts on whatever fits. "Switch to one of its first N scripts at random" is how a character wanders: its ordinary scripts are often one list entered at different places. The reactions are the scripts REACT (REACT) sends a character to when something is done to it.
At the start: NASTY_GOBLIN_A
An ordinary script: NASTY_GOBLIN_A
On ATTACK WITH: GOBLINS_ON_ATTACK_WITH
At the start: VICIOUS_GOBLIN_A
An ordinary script: VICIOUS_GOBLIN_A
On ATTACK WITH: GOBLINS_ON_ATTACK_WITH
At the start: HORRIBLE_GOBLIN_A
An ordinary script: HORRIBLE_GOBLIN_A
On ATTACK WITH: GOBLINS_ON_ATTACK_WITH
At the start: GANDALF_F
An ordinary script: GANDALF_A
An ordinary script: GANDALF_B
An ordinary script: GANDALF_C
An ordinary script: GANDALF_D
An ordinary script: GANDALF_E
On GIVE TO: ON_GIVE_TO
On CAPTURE: GANDALF_ON_CAPTURE
On ATTACK WITH: ON_ATTACK_WITH
Where it starts: GANDALF_F
At the start: THORIN_A
An ordinary script: THORIN_A
On GIVE TO: ON_GIVE_TO
On ATTACK WITH: ON_ATTACK_WITH
At the start: WOOD_ELF_A
An ordinary script: WOOD_ELF_A
On ATTACK WITH: WOOD_ELF_A
On GIVE TO: ON_GIVE_TO
At the start: VICIOUS_WARG_A
An ordinary script: VICIOUS_WARG_A
At the start: BUTLER_A
An ordinary script: BUTLER_A
On ATTACK WITH: BUTLER_ON_ATTACK_WITH
On GIVE TO: ON_GIVE_TO
At the start: ELROND_B
An ordinary script: ELROND_A
On ATTACK WITH: ELROND_ON_ATTACK_WITH
On GIVE TO: ON_GIVE_TO
Where it starts: ELROND_B
At the start: RED_GOLDEN_DRAGON_A
An ordinary script: RED_GOLDEN_DRAGON_A
On ATTACK WITH: RED_GOLDEN_DRAGON_ON_ATTACK_WITH
At the start: BARD_A
An ordinary script: BARD_A
On ATTACK WITH: BARD_ON_ATTACK_WITH
At the start: GOLLUM_A
An ordinary script: GOLLUM_A
On ATTACK WITH: GOLLUM_ON_ATTACK_WITH
At the start: HIDEOUS_TROLL_B
An ordinary script: HIDEOUS_TROLL_A
On ATTACK WITH: ON_ATTACK_WITH
Where it starts: HIDEOUS_TROLL_B