![]() |
Routines |
| Prev: F30B | Up: Map | Next: F516 |
|
Fight the Korl warrior.
|
||||
| Handler_KillTheWarrior | F48B | LD HL,$E77A | Call Parser_SkipToken to skip to the object named by this phrase. | |
| F48E | CALL Parser_SkipToken | |||
| F491 | LD B,A | Call TransformItem to turn the warrior into the dead blacksmith. | ||
| F492 | LD C,$27 | |||
| F494 | CALL TransformItem | |||
|
Reply with "You have killed him.".
|
||||
| F497 | LD HL,$E086 | Print "You have killed him." and return to the game loop. | ||
| F49A | JP PauseAndPrintResponse | |||
|
This entry point is used by the routine at Handler_FightOpponent.
|
||||
| Handler_KillTheWarrior_RingWornBow | F49D | LD HL,$E8B4 | Jump to Handler_KillTheWarrior_Next unless the player named the ring being worn. | |
| F4A0 | CALL Parser_AdvanceToSeparator | |||
| F4A3 | JR NZ,Handler_KillTheWarrior_Next | |||
| F4A5 | LD A,$27 | Jump to Response_HesAlreadyDead when object 27 (the dead blacksmith) is here. | ||
| F4A7 | CALL IsObjectInCurrentRoom | |||
| F4AA | JP Z,Response_HesAlreadyDead | |||
| F4AD | CALL Handler_CheckWeapon | Call Handler_CheckWeapon to make sure the player is holding the bow and some arrows. | ||
| F4B0 | XOR A | Call Handler_AnnounceArrow to announce the arrow. | ||
| F4B1 | CALL Handler_AnnounceArrow | |||
| F4B4 | JP Handler_KillTheWarrior | Jump back to Handler_KillTheWarrior to finish off the warrior. | ||
| Handler_KillTheWarrior_Next | F4B7 | LD HL,$E8B8 | Jump to Handler_KillTheWarrior_LogBridgeBow unless the player named the log bridge. | |
| F4BA | CALL Parser_AdvanceToSeparator | |||
| F4BD | JR NZ,Handler_KillTheWarrior_LogBridgeBow | |||
| F4BF | LD A,$2A | Jump to Response_HesAlreadyDead if object 2A (Zarn) is not here. | ||
| F4C1 | CALL IsObjectInCurrentRoom | |||
| F4C4 | JP NZ,Response_HesAlreadyDead | |||
| F4C7 | CALL Handler_RequireSword | Call Handler_RequireSword to make sure the player is holding the sword. | ||
| F4CA | LD A,$05 | Call Handler_ResolveAttack to resolve the attack on the named opponent. | ||
| F4CC | CALL Handler_ResolveAttack | |||
| F4CF | LD BC,$2A2B | Replace object 2A (Zarn) with object 2B (Zarn's body). | ||
| F4D2 | CALL TransformItem | |||
| F4D5 | LD HL,$BA3F | Arm Princess Mara's arrival, then pause and print "Your blow strikes true." and start a new line. | ||
| F4D8 | SET 0,(HL) | |||
| F4DA | LD HL,$DF44 | |||
| F4DD | CALL PausePrintStringAndScroll | |||
|
Reply with "The Wizard falls to the floor.
He is dead.
The Princess says:-
"My brave warrior,let us leave.
Lead and I will follow."".
|
||||
| F4E0 | LD HL,$E09B | Print "The Wizard falls to the floor. He is dead. The Princess says:- "My brave warrior,let us leave. Lead and I will follow."" and return to the game loop. | ||
| F4E3 | JP PrintResponse | |||
| Handler_KillTheWarrior_LogBridgeBow | F4E6 | LD HL,$E8BC | Jump to Handler_KillTheWarrior_PrincessSword unless the player named the log bridge. | |
| F4E9 | CALL Parser_AdvanceToSeparator | |||
| F4EC | JR NZ,Handler_KillTheWarrior_PrincessSword | |||
| F4EE | LD A,$2A | Jump to Response_HesAlreadyDead if object 2A (Zarn) is not here. | ||
| F4F0 | CALL IsObjectInCurrentRoom | |||
| F4F3 | JP NZ,Response_HesAlreadyDead | |||
| F4F6 | CALL Handler_CheckWeapon | Call Handler_CheckWeapon to make sure the player is holding the bow and some arrows. | ||
|
Reply with "Arrows have no effect.".
|
||||
| F4F9 | LD HL,$E06F | Print "Arrows have no effect." and return to the game loop. | ||
| F4FC | JP PrintResponse | |||
| Handler_KillTheWarrior_PrincessSword | F4FF | LD HL,$E8C0 | Jump to Handler_KillTheWitch_PrincessBow unless the player named the princess with the sword. | |
| F502 | CALL Parser_AdvanceToSeparator | |||
| F505 | JR NZ,Handler_KillTheWitch_PrincessBow | |||
| F507 | LD A,$2C | Jump to Response_ShesAlreadyDead if object 2C (Princess Mara) is not here. | ||
| F509 | CALL IsObjectInCurrentRoom | |||
| F50C | JP NZ,Response_ShesAlreadyDead | |||
| F50F | CALL Handler_RequireSword | Call Handler_RequireSword to make sure the player is holding the sword. | ||
| F512 | XOR A | Call Handler_ResolveAttack to resolve the attack on the named opponent. | ||
| F513 | CALL Handler_ResolveAttack | |||
| Prev: F30B | Up: Map | Next: F516 |