![]() |
Routines |
| Prev: F292 | Up: Map | Next: F5B6 |
|
Fight the opponent the player named.
|
||||
| Action_Kill | F2A7 | CALL Parser_ValidateTwoDirectObjects | Call Parser_ValidateTwoDirectObjects. | |
| F2AA | RET C | Return if the direct object is malformed. | ||
| F2AB | JP Validate_Kill_ElfSword | Jump to Validate_Kill_ElfSword. | ||
|
Does the player hold the bow and some arrows?
|
||||
| Kill_CheckBowAndArrows | F2AE | LD A,$03 | Call IsObjectCarried with item 03: "A bow". | |
| F2B0 | CALL IsObjectCarried | |||
| F2B3 | JR NZ,Kill_NoBow | Jump to Kill_NoBow if "A bow" isn't held. | ||
| F2B5 | LD A,$04 | Call IsObjectCarried with item 04: "Some arrows". | ||
| F2B7 | CALL IsObjectCarried | |||
| F2BA | RET Z | Return if "Some arrows" is held. | ||
|
Print "You have no arrows.".
|
||||
| F2BB | LD HL,$DED1 | HL=Messaging_YouHaveNoArrows. | ||
| F2BE | JR Kill_WeaponReply | Jump to Kill_WeaponReply. | ||
|
Print "You're not carrying a bow.".
|
||||
| Kill_NoBow | F2C0 | LD HL,$DF29 | HL=Messaging_YoureNotCarryingABow. | |
| Kill_WeaponReply | F2C3 | POP DE | Restore DE from the stack. | |
| F2C4 | JP PrintResponse | Jump to PrintResponse. | ||
|
Does the player hold the sword?
|
||||
| Kill_CheckSword | F2C7 | LD A,$0A | Call IsObjectCarried with item 0A: "A sword". | |
| F2C9 | CALL IsObjectCarried | |||
| F2CC | RET Z | Return if "A sword" is held. | ||
|
Print "You're not carrying the sword.".
|
||||
| F2CD | LD HL,$DF72 | HL=Messaging_YoureNotCarryingTheSword. | ||
| F2D0 | POP DE | Restore DE from the stack. | ||
| F2D1 | JP PrintResponse | Jump to PrintResponse. | ||
|
Print "You fire an arrow:-".
|
||||
| Kill_AnnounceArrow | F2D4 | PUSH AF | Stash AF on the stack. | |
| F2D5 | LD HL,$DEE5 | HL=Messaging_YouFireAnArrow. | ||
| F2D8 | JR Kill_ResolveAttack_Print | Jump to Kill_ResolveAttack_Print. | ||
|
Print "You swing the sword:-".
|
||||
| Kill_ResolveAttack | F2DA | PUSH AF | Stash AF on the stack. | |
| F2DB | LD HL,$DF5C | HL=Messaging_YouSwingTheSword. | ||
| Kill_ResolveAttack_Print | F2DE | CALL PrintStringAndNewline | Call PrintStringAndNewline. | |
| F2E1 | POP AF | Restore AF from the stack. | ||
| F2E2 | AND A | Return if this attack cannot miss. | ||
| F2E3 | RET Z | |||
| F2E4 | CALL GenerateRandomNumber | Call GenerateRandomNumber. | ||
| F2E7 | RET NZ | Return if the blow lands. | ||
|
Print "Bad luck.You missed.".
|
||||
| F2E8 | LD HL,$DEF9 | HL=Messaging_BadLuckYouMissed. | ||
| F2EB | POP DE | Restore DE from the stack. | ||
| F2EC | JP PauseAndPrintResponse | Jump to PauseAndPrintResponse. | ||
|
Turn the defeated scenic event into its corpse.
|
||||
| Kill_ApplyCombatResult | F2EF | LD HL,$BB4D | Call TransformItem to turn the defeated scenic event into its corpse. | |
| F2F2 | LD A,(HL) | |||
| F2F3 | SUB $80 | |||
| F2F5 | ADD A,$13 | |||
| F2F7 | LD B,(HL) | |||
| F2F8 | LD C,A | |||
| F2F9 | CALL TransformItem | |||
| F2FC | RET | Return. | ||
|
Turn the second defeated scenic event into its corpse.
|
||||
| Kill_ApplySecondCombatResult | F2FD | LD HL,$BB4D | Call TransformItem to turn the second defeated scenic event into its corpse. | |
| F300 | LD A,(HL) | |||
| F301 | SUB $83 | |||
| F303 | ADD A,$18 | |||
| F305 | LD B,(HL) | |||
| F306 | LD C,A | |||
| F307 | CALL TransformItem | |||
| F30A | RET | Return. | ||
|
Was the player trying to kill ... the elf with the sword?
|
||||
| Validate_Kill_ElfSword | F30B | LD HL,$E87D | Jump to Validate_Kill_ElfBow unless the player named the elf with the sword. | |
| F30E | CALL Parser_AdvanceToSeparator | |||
| F311 | JR NZ,Validate_Kill_ElfBow | |||
| F313 | LD HL,$E711 | Call Parser_SkipToken to skip to the object named by this phrase. | ||
| F316 | CALL Parser_SkipToken | |||
| F319 | BIT 7,A | Jump back to Response_HesAlreadyDead when the named opponent is already dead. | ||
| F31B | JP Z,Response_HesAlreadyDead | |||
| F31E | LD ($BB4D),A | Call Kill_CheckSword. | ||
| F321 | CALL Kill_CheckSword | |||
| F324 | LD A,$0A | Call Kill_ResolveAttack. | ||
| F326 | CALL Kill_ResolveAttack | |||
| F329 | CALL Kill_ApplyCombatResult | Call Kill_ApplyCombatResult. | ||
| F32C | LD A,($BB4D) | Jump to Kill_ElfSword_Done unless the value 82 matches. | ||
| F32F | CP $82 | |||
| F331 | JR NZ,Kill_ElfSword_Done | |||
| F333 | LD A,$86 | Remove object 86 (the centaur) from the game. | ||
| F335 | CALL Handler_RemoveItemFromPlay | |||
| Kill_ElfSword_Done | F338 | LD HL,$DF44 | Print "Your blow strikes true.". | |
| F33B | CALL PausePrintStringAndScroll | |||
|
Print "The Elf is dead.".
|
||||
| F33E | LD HL,$DFA3 | HL=Messaging_TheElfIsDead. | ||
| F341 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the elf with the bow?
|
||||
| Validate_Kill_ElfBow | F344 | LD HL,$E881 | Jump to Validate_Kill_WarriorSword unless the player named the elf with the bow. | |
| F347 | CALL Parser_AdvanceToSeparator | |||
| F34A | JR NZ,Validate_Kill_WarriorSword | |||
| F34C | LD HL,$E711 | Call Parser_SkipToken to skip to the object named by this phrase. | ||
| F34F | CALL Parser_SkipToken | |||
| F352 | BIT 7,A | Jump back to Response_HesAlreadyDead when the named opponent is already dead. | ||
| F354 | JP Z,Response_HesAlreadyDead | |||
| F357 | LD ($BB4D),A | Call Kill_CheckBowAndArrows. | ||
| F35A | CALL Kill_CheckBowAndArrows | |||
| F35D | LD A,$05 | Call Kill_AnnounceArrow. | ||
| F35F | CALL Kill_AnnounceArrow | |||
| F362 | CALL Kill_ApplyCombatResult | Call Kill_ApplyCombatResult. | ||
| F365 | LD A,($BB4D) | Jump to Kill_ElfBow_Done unless the value 82 matches. | ||
| F368 | CP $82 | |||
| F36A | JR NZ,Kill_ElfBow_Done | |||
| F36C | LD A,$86 | Remove object 86 (the centaur) from the game. | ||
| F36E | CALL Handler_RemoveItemFromPlay | |||
| Kill_ElfBow_Done | F371 | LD HL,$DF0E | Print "Well done! A perfect shot.". | |
| F374 | CALL PausePrintStringAndScroll | |||
|
Print "The Elf is dead.".
|
||||
| F377 | LD HL,$DFA3 | HL=Messaging_TheElfIsDead. | ||
| F37A | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the warrior with the sword?
|
||||
| Validate_Kill_WarriorSword | F37D | LD HL,$E885 | Jump to Validate_Kill_WarriorBow unless the player named the dead warrior. | |
| F380 | CALL Parser_AdvanceToSeparator | |||
| F383 | JR NZ,Validate_Kill_WarriorBow | |||
| F385 | LD HL,$E71F | Call Parser_SkipToken to skip to the object named by this phrase. | ||
| F388 | CALL Parser_SkipToken | |||
| F38B | BIT 7,A | Jump back to Response_ItsAlreadyDead when the named opponent is already dead. | ||
| F38D | JP Z,Response_ItsAlreadyDead | |||
| F390 | LD ($BB4D),A | Call Kill_CheckSword. | ||
| F393 | CALL Kill_CheckSword | |||
| F396 | LD A,$01 | Call Kill_ResolveAttack. | ||
| F398 | CALL Kill_ResolveAttack | |||
| F39B | CALL Kill_ApplySecondCombatResult | Call Kill_ApplySecondCombatResult. | ||
| F39E | LD HL,$DF44 | Print "Your blow strikes true.". | ||
| F3A1 | CALL PausePrintStringAndScroll | |||
|
Print "The lizard falls to the ground.
It is dead.".
|
||||
| F3A4 | LD HL,$DFB4 | HL=Messaging_TheLizardFallsToTheGround. | ||
| F3A7 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the warrior with the bow?
|
||||
| Validate_Kill_WarriorBow | F3AA | LD HL,$E88E | Jump to Validate_Kill_MonsterBow unless the player named the dead warrior. | |
| F3AD | CALL Parser_AdvanceToSeparator | |||
| F3B0 | JR NZ,Validate_Kill_MonsterBow | |||
| F3B2 | LD HL,$E71F | Call Parser_SkipToken to skip to the object named by this phrase. | ||
| F3B5 | CALL Parser_SkipToken | |||
| F3B8 | BIT 7,A | Jump back to Response_ItsAlreadyDead when the named opponent is already dead. | ||
| F3BA | JP Z,Response_ItsAlreadyDead | |||
| F3BD | LD ($BB4D),A | Call Kill_CheckBowAndArrows. | ||
| F3C0 | CALL Kill_CheckBowAndArrows | |||
| F3C3 | LD A,$05 | Call Kill_AnnounceArrow. | ||
| F3C5 | CALL Kill_AnnounceArrow | |||
| F3C8 | CALL Kill_ApplySecondCombatResult | Call Kill_ApplySecondCombatResult. | ||
| F3CB | LD HL,$DF0E | Print "Well done! A perfect shot.". | ||
| F3CE | CALL PausePrintStringAndScroll | |||
|
Print "The lizard falls to the ground.
It is dead.".
|
||||
| F3D1 | LD HL,$DFB4 | HL=Messaging_TheLizardFallsToTheGround. | ||
| F3D4 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the slime monster with the bow?
|
||||
| Validate_Kill_MonsterBow | F3D7 | LD HL,$E8A4 | Jump to Validate_Kill_Dragon unless the player named the monster with the bow. | |
| F3DA | CALL Parser_AdvanceToSeparator | |||
| F3DD | JR NZ,Validate_Kill_Dragon | |||
| F3DF | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F3E2 | LD A,$05 | Call Kill_AnnounceArrow. | ||
| F3E4 | CALL Kill_AnnounceArrow | |||
| F3E7 | LD A,$1E | Destroy "A monster from the slime". | ||
| F3E9 | CALL Handler_DestroyItem | |||
| F3EC | LD HL,$DF0E | Print "Well done! A perfect shot.". | ||
| F3EF | CALL PausePrintStringAndScroll | |||
|
Print "The stricken monster slides
back into the oozing slime.".
|
||||
| F3F2 | LD HL,$E009 | HL=Messaging_TheStrickenMonsterSlides. | ||
| F3F5 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the dragon?
|
||||
| Validate_Kill_Dragon | F3F8 | LD HL,$E897 | Jump to Validate_Kill_WoodNymph unless the player named the glowing rock. | |
| F3FB | CALL Parser_AdvanceToSeparator | |||
| F3FE | JR NZ,Validate_Kill_WoodNymph | |||
| F400 | LD A,$16 | Jump to Response_ItsAlreadyDead if "A dragon. It is watching you" is not here. | ||
| F402 | CALL ValidateItemPresent | |||
| F405 | JP NZ,Response_ItsAlreadyDead | |||
| F408 | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F40B | XOR A | Call Kill_AnnounceArrow. | ||
| F40C | CALL Kill_AnnounceArrow | |||
| F40F | LD BC,$1617 | Call TransformItem to transform "A dragon. It is watching you" into "A dead dragon". | ||
| F412 | CALL TransformItem | |||
|
Print "You have killed it.".
|
||||
| F415 | LD HL,$DFE0 | HL=Messaging_YouHaveKilledIt. | ||
| F418 | JP PauseAndPrintResponse | Jump to PauseAndPrintResponse. | ||
|
Was the player trying to kill ... the wood nymph?
|
||||
| Validate_Kill_WoodNymph | F41B | LD HL,$E89B | Jump to Validate_Kill_DemonsSword unless the player named a closed door. | |
| F41E | CALL Parser_AdvanceToSeparator | |||
| F421 | JR NZ,Validate_Kill_DemonsSword | |||
| F423 | LD A,$8A | Jump to Response_ShesAlreadyDead if object 8A (the wood nymph) is not here. | ||
| F425 | CALL ValidateItemPresent | |||
| F428 | JP NZ,Response_ShesAlreadyDead | |||
| F42B | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F42E | XOR A | Call Kill_AnnounceArrow. | ||
| F42F | CALL Kill_AnnounceArrow | |||
| F432 | LD BC,$8A1C | Call TransformItem to transform 8A into "The body of a wood nymph". | ||
| F435 | CALL TransformItem | |||
| F438 | LD A,$89 | Destroy object 89 (the nymph's glimpse). | ||
| F43A | CALL Handler_DestroyItem | |||
|
Print "You have killed her.".
|
||||
| F43D | LD HL,$DFF4 | HL=Messaging_YouHaveKilledHer. | ||
| F440 | JP PauseAndPrintResponse | Jump to PauseAndPrintResponse. | ||
|
Was the player trying to kill ... the demons with the sword?
|
||||
| Validate_Kill_DemonsSword | F443 | LD HL,$E8A8 | Jump to Validate_Kill_DemonsBow unless the player named the log bridge. | |
| F446 | CALL Parser_AdvanceToSeparator | |||
| F449 | JR NZ,Validate_Kill_DemonsBow | |||
| F44B | CALL Kill_CheckSword | Call Kill_CheckSword. | ||
| F44E | LD A,$0A | Call Kill_ResolveAttack. | ||
| F450 | CALL Kill_ResolveAttack | |||
| F453 | LD A,$29 | Destroy "Some demons are attacking you. They scream and jab at you with vicious tridents". | ||
| F455 | CALL Handler_DestroyItem | |||
|
This action changes the map:
|
||||
| F458 | LD A,$49 | Write 49 to *Exit_CavernEast to open up eastbound access to In a Rock Passage from The Cavern of Silence. | ||
| F45A | LD ($EADA),A | |||
|
Print "The demons scream with panic,
then fade away.".
|
||||
| F45D | LD HL,$E041 | HL=Messaging_TheDemonsScreamWithPanic. | ||
| F460 | JP PauseAndPrintResponse | Jump to PauseAndPrintResponse. | ||
|
Was the player trying to kill ... the demons with the bow?
|
||||
| Validate_Kill_DemonsBow | F463 | LD HL,$E8AC | Jump to Validate_Kill_BlacksmithSword unless the player named the log bridge. | |
| F466 | CALL Parser_AdvanceToSeparator | |||
| F469 | JR NZ,Validate_Kill_BlacksmithSword | |||
| F46B | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
|
Print "Arrows have no effect.".
|
||||
| F46E | LD HL,$E06F | HL=Messaging_ArrowsHaveNoEffect. | ||
| F471 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the blacksmith with the sword?
|
||||
| Validate_Kill_BlacksmithSword | F474 | LD HL,$E8B0 | Jump to Validate_Kill_BlacksmithBow unless the player named the ring being worn. | |
| F477 | CALL Parser_AdvanceToSeparator | |||
| F47A | JR NZ,Validate_Kill_BlacksmithBow | |||
| F47C | LD A,$27 | Jump to Response_HesAlreadyDead when "The body of the blacksmith" is here. | ||
| F47E | CALL ValidateItemPresent | |||
| F481 | JP Z,Response_HesAlreadyDead | |||
| F484 | CALL Kill_CheckSword | Call Kill_CheckSword. | ||
| F487 | XOR A | Call Kill_ResolveAttack. | ||
| F488 | CALL Kill_ResolveAttack | |||
|
Fight the Korl warrior.
|
||||
| Kill_BlacksmithBody | 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 | |||
|
Print "You have killed him.".
|
||||
| F497 | LD HL,$E086 | HL=Messaging_YouHaveKilledHim. | ||
| F49A | JP PauseAndPrintResponse | Jump to PauseAndPrintResponse. | ||
|
Was the player trying to kill ... the blacksmith with the bow?
|
||||
| Validate_Kill_BlacksmithBow | F49D | LD HL,$E8B4 | Jump to Validate_Kill_ZarnSword unless the player named the ring being worn. | |
| F4A0 | CALL Parser_AdvanceToSeparator | |||
| F4A3 | JR NZ,Validate_Kill_ZarnSword | |||
| F4A5 | LD A,$27 | Jump to Response_HesAlreadyDead when "The body of the blacksmith" is here. | ||
| F4A7 | CALL ValidateItemPresent | |||
| F4AA | JP Z,Response_HesAlreadyDead | |||
| F4AD | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F4B0 | XOR A | Call Kill_AnnounceArrow. | ||
| F4B1 | CALL Kill_AnnounceArrow | |||
| F4B4 | JP Kill_BlacksmithBody | Jump back to Kill_BlacksmithBody to finish off the warrior. | ||
|
Was the player trying to kill ... Zarn with the sword?
|
||||
| Validate_Kill_ZarnSword | F4B7 | LD HL,$E8B8 | Jump to Validate_Kill_ZarnBow unless the player named the log bridge. | |
| F4BA | CALL Parser_AdvanceToSeparator | |||
| F4BD | JR NZ,Validate_Kill_ZarnBow | |||
| F4BF | LD A,$2A | Jump to Response_HesAlreadyDead if "The Wizard,Zarn. He prepares to cast a spell over you" is not here. | ||
| F4C1 | CALL ValidateItemPresent | |||
| F4C4 | JP NZ,Response_HesAlreadyDead | |||
| F4C7 | CALL Kill_CheckSword | Call Kill_CheckSword. | ||
| F4CA | LD A,$05 | Call Kill_ResolveAttack. | ||
| F4CC | CALL Kill_ResolveAttack | |||
| F4CF | LD BC,$2A2B | Call TransformItem to transform "The Wizard,Zarn. He prepares to cast a spell over you" into "The body of the Wizard". | ||
| 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 | |||
|
Print "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 | HL=Messaging_TheWizardFallsToTheFloor. | ||
| F4E3 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... Zarn with the bow?
|
||||
| Validate_Kill_ZarnBow | F4E6 | LD HL,$E8BC | Jump to Validate_Kill_PrincessSword unless the player named the log bridge. | |
| F4E9 | CALL Parser_AdvanceToSeparator | |||
| F4EC | JR NZ,Validate_Kill_PrincessSword | |||
| F4EE | LD A,$2A | Jump to Response_HesAlreadyDead if "The Wizard,Zarn. He prepares to cast a spell over you" is not here. | ||
| F4F0 | CALL ValidateItemPresent | |||
| F4F3 | JP NZ,Response_HesAlreadyDead | |||
| F4F6 | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
|
Print "Arrows have no effect.".
|
||||
| F4F9 | LD HL,$E06F | HL=Messaging_ArrowsHaveNoEffect. | ||
| F4FC | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... Princess Mara with the sword?
|
||||
| Validate_Kill_PrincessSword | F4FF | LD HL,$E8C0 | Jump to Validate_Kill_PrincessBow unless the player named the princess with the sword. | |
| F502 | CALL Parser_AdvanceToSeparator | |||
| F505 | JR NZ,Validate_Kill_PrincessBow | |||
| F507 | LD A,$2C | Jump to Response_ShesAlreadyDead if "The Princess,Mara" is not here. | ||
| F509 | CALL ValidateItemPresent | |||
| F50C | JP NZ,Response_ShesAlreadyDead | |||
| F50F | CALL Kill_CheckSword | Call Kill_CheckSword. | ||
| F512 | XOR A | Call Kill_ResolveAttack. | ||
| F513 | CALL Kill_ResolveAttack | |||
|
Fight the witch.
|
||||
| Kill_PrincessBody | F516 | LD BC,$2C2D | Call TransformItem to transform "The Princess,Mara" into "The body of the Princess". | |
| F519 | CALL TransformItem | |||
| F51C | LD HL,$BA3F | Stop Princess Mara appearing, then pause and print "You have killed her." and return to the game loop. | ||
| F51F | RES 0,(HL) | |||
| F521 | LD HL,$DFF4 | |||
| F524 | JP PauseAndPrintResponse | |||
|
Was the player trying to kill ... Princess Mara with the bow?
|
||||
| Validate_Kill_PrincessBow | F527 | LD HL,$E8C4 | Jump to Validate_Kill_WarriorSword2 unless the player named the princess with the bow. | |
| F52A | CALL Parser_AdvanceToSeparator | |||
| F52D | JR NZ,Validate_Kill_WarriorSword2 | |||
| F52F | LD A,$2C | Jump to Response_ShesAlreadyDead if "The Princess,Mara" is not here. | ||
| F531 | CALL ValidateItemPresent | |||
| F534 | JP NZ,Response_ShesAlreadyDead | |||
| F537 | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F53A | XOR A | Call Kill_AnnounceArrow. | ||
| F53B | CALL Kill_AnnounceArrow | |||
| F53E | JP Kill_PrincessBody | Jump back to Kill_PrincessBody to finish off the witch. | ||
|
Was the player trying to kill ... the warrior with the sword?
|
||||
| Validate_Kill_WarriorSword2 | F541 | LD HL,$E8C8 | Jump to Validate_Kill_WarriorBow2 unless the player named the warrior with the sword. | |
| F544 | CALL Parser_AdvanceToSeparator | |||
| F547 | JR NZ,Validate_Kill_WarriorBow2 | |||
| F549 | LD A,$8C | Jump to Response_HesAlreadyDead if object 8C is not here. | ||
| F54B | CALL ValidateItemPresent | |||
| F54E | JP NZ,Response_HesAlreadyDead | |||
| F551 | CALL Kill_CheckSword | Call Kill_CheckSword. | ||
| F554 | LD A,$05 | Call Kill_ResolveAttack. | ||
| F556 | CALL Kill_ResolveAttack | |||
| F559 | LD HL,$DF44 | The sword lands, with "Your blow strikes true.". | ||
|
Fight the blacksmith.
|
||||
| Kill_WarriorBody | F55C | CALL PausePrintStringAndScroll | Call PausePrintStringAndScroll to pause, then print that message and start a new line. | |
| F55F | LD BC,$8C34 | Call TransformItem to transform 8C into "A dead warrior". | ||
| F562 | CALL TransformItem | |||
|
Print "You have killed him.".
|
||||
| F565 | LD HL,$E086 | HL=Messaging_YouHaveKilledHim. | ||
| F568 | JP PrintResponse | Jump to PrintResponse. | ||
|
Was the player trying to kill ... the warrior with the bow?
|
||||
| Validate_Kill_WarriorBow2 | F56B | LD HL,$E8D1 | Jump to Validate_Kill_SpiderBow unless the player named the warrior with the bow. | |
| F56E | CALL Parser_AdvanceToSeparator | |||
| F571 | JR NZ,Validate_Kill_SpiderBow | |||
| F573 | LD A,$8C | Jump to Response_HesAlreadyDead if object 8C is not here. | ||
| F575 | CALL ValidateItemPresent | |||
| F578 | JP NZ,Response_HesAlreadyDead | |||
| F57B | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F57E | LD A,$05 | Call Kill_AnnounceArrow. | ||
| F580 | CALL Kill_AnnounceArrow | |||
| F583 | LD HL,$DF0E | Print "Well done! A perfect shot." and strike the blacksmith. | ||
| F586 | JP Kill_WarriorBody | |||
|
Was the player trying to kill ... the giant spider with the bow?
|
||||
| Validate_Kill_SpiderBow | F589 | LD HL,$E8DA | Jump to Kill_YouCant unless the player named the spider with the bow. | |
| F58C | CALL Parser_AdvanceToSeparator | |||
| F58F | JR NZ,Kill_YouCant | |||
| F591 | LD A,$41 | Jump to Response_ItsAlreadyDead if "A giant spider. It advances toward you" is not here. | ||
| F593 | CALL ValidateItemPresent | |||
| F596 | JP NZ,Response_ItsAlreadyDead | |||
| F599 | CALL Kill_CheckBowAndArrows | Call Kill_CheckBowAndArrows. | ||
| F59C | LD A,$05 | Call Kill_AnnounceArrow. | ||
| F59E | CALL Kill_AnnounceArrow | |||
| F5A1 | LD BC,$4142 | Call TransformItem to transform "A giant spider. It advances toward you" into "The body of a giant spider". | ||
| F5A4 | CALL TransformItem | |||
| F5A7 | LD HL,$DF0E | Print "Well done! A perfect shot.". | ||
| F5AA | CALL PausePrintStringAndScroll | |||
|
Print "You have killed it.".
|
||||
| F5AD | LD HL,$DFE0 | HL=Messaging_YouHaveKilledIt. | ||
| F5B0 | JP PrintResponse | Jump to PrintResponse. | ||
|
Nothing else is valid.
|
||||
| Kill_YouCant | F5B3 | JP Response_YouCant_GameLoop | Jump to Response_YouCant_GameLoop. | |
|
View the equivalent code in;
|
||||
| Prev: F292 | Up: Map | Next: F5B6 |