Prev: 60569 Up: Map Next: 60774
60598: Handler: Injury Check
Used by the routines at MovePlayer, Action_Climb, Action_Enter and GameStart.
Refuse the move while the player is badly hurt. Otherwise change rooms and arm the local dangers.
Handler_InjuryCheck 60598 LD C,A C=A.
60599 LD A,72 Call ValidateItemPresent with item 72: "You are seriously injured".
60601 CALL ValidateItemPresent
60604 JR NZ,Handler_InjuryCheck_Next Jump to Handler_InjuryCheck_Next if "You are seriously injured" is not in the current room.
Print "You can't move. You are too badly injured.".
60606 LD HL,56120 HL=Messaging_YouCantMove.
60609 CALL PrintStringAndNewline Call PrintStringAndNewline.
60612 RET Return.
Move into the requested room and arm local dangers.
Handler_InjuryCheck_Next 60613 LD A,C A=C.
60614 CALL MovePlayerToRoom Call MovePlayerToRoom.
60617 LD E,0 E=0.
60619 CALL Handler_DisplayRoom Call Handler_DisplayRoom.
60622 LD A,65 Jump to Handler_InjuryCheck_SlimeMonster if ValidateItemPresent reports that "A giant spider. It advances toward you" isn't in the current room.
60624 CALL ValidateItemPresent
60627 JR NZ,Handler_InjuryCheck_SlimeMonster
Arm the giant spider for six turns.
60629 LD HL,47670 HL=Flag_TurnBasedEventState.
60632 SET 1,(HL) Set bit 1 of *HL.
60634 LD A,6 A=6.
60636 LD (47672),A Write A to *Counter_Spider.
Is the slime monster here?
Handler_InjuryCheck_SlimeMonster 60639 LD A,30 Jump to Handler_InjuryCheck_Demons if ValidateItemPresent reports that "A monster from the slime" isn't in the current room.
60641 CALL ValidateItemPresent
60644 JR NZ,Handler_InjuryCheck_Demons
Arm the slime monster for six turns.
60646 LD HL,47670 HL=Flag_TurnBasedEventState.
60649 SET 2,(HL) Set bit 2 of *HL.
60651 LD A,6 A=6.
60653 LD (47673),A Write A to *Counter_SlimeMonster.
Are the demons here?
Handler_InjuryCheck_Demons 60656 LD A,41 Jump to Handler_InjuryCheck_Zarn if ValidateItemPresent reports that "Some demons are attacking you. They scream and jab at you with vicious tridents" isn't in the current room.
60658 CALL ValidateItemPresent
60661 JR NZ,Handler_InjuryCheck_Zarn
Arm the demons for six turns.
60663 LD HL,47670 HL=Flag_TurnBasedEventState.
60666 SET 3,(HL) Set bit 3 of *HL.
60668 LD A,6 A=6.
60670 LD (47674),A Write A to *Counter_Demons.
Is Zarn here?
Handler_InjuryCheck_Zarn 60673 LD A,42 Jump to Handler_InjuryCheck_Witch if ValidateItemPresent reports that "The Wizard,Zarn. He prepares to cast a spell over you" isn't in the current room.
60675 CALL ValidateItemPresent
60678 JR NZ,Handler_InjuryCheck_Witch
Arm Zarn for six turns.
60680 LD HL,47670 HL=Flag_TurnBasedEventState.
60683 SET 4,(HL) Set bit 4 of *HL.
60685 LD A,6 A=6.
60687 LD (47675),A Write A to *Counter_Wizard.
Is the witch here?
Handler_InjuryCheck_Witch 60690 LD A,46 Jump to Handler_InjuryCheck_OldMan if ValidateItemPresent reports that "The Witch" isn't in the current room.
60692 CALL ValidateItemPresent
60695 JR NZ,Handler_InjuryCheck_OldMan
60697 LD A,67 Jump to Handler_InjuryCheck_WitchSeesRing if "A ring,which you are wearing" is held.
60699 CALL IsObjectCarried
60702 JR Z,Handler_InjuryCheck_WitchSeesRing
Print "The Witch sees you,chuckles gleefully,then throws some majic powder at you. You cannot move. She beats you with her broom.".
60704 LD HL,56163 HL=Messaging_TheWitchSeesYouChuckles.
60707 CALL PrintStringAndNewline Call PrintStringAndNewline.
60710 POP HL Restore HL from the stack.
60711 LD HL,60195 Switch GameOver onto the stack so the next return actions a "game over".
60714 EX (SP),HL
60715 RET Return.
Print "The Witch sees the ring on your hand,then she screams and vanishes in a puff of smoke.".
Handler_InjuryCheck_WitchSeesRing 60716 LD HL,56286 HL=Messaging_TheWitchSeesTheRingOn.
60719 CALL PrintStringAndNewline Call PrintStringAndNewline.
60722 LD A,46 Call Handler_DestroyItem with item 46: "The Witch".
60724 CALL Handler_DestroyItem
Is the old man here?
Handler_InjuryCheck_OldMan 60727 LD A,47 Jump to Handler_InjuryCheck_GreatValley if ValidateItemPresent reports that "The Old Man. He lays down a bow and some arrows. He says:- 'These are tipped wit" isn't in the current room.
60729 CALL ValidateItemPresent
60732 JR NZ,Handler_InjuryCheck_GreatValley
60734 LD A,47 Call Handler_DestroyItem with item 47: "The Old Man. He lays down a bow and some arrows. He says:- 'These are tipped wit".
60736 CALL Handler_DestroyItem
60739 LD A,3 Call Handler_UpdateItemForTheCurrentRoom with item 3: "A bow".
60741 CALL Handler_UpdateItemForTheCurrentRoom
60744 LD A,4 Call Handler_UpdateItemForTheCurrentRoom with item 4: "Some arrows".
60746 CALL Handler_UpdateItemForTheCurrentRoom
Print "He suddenly vanishes.".
60749 LD HL,55613 HL=Messaging_HeSuddenlyVanishes.
60752 CALL PausePrintStringAndScroll Call PausePrintStringAndScroll.
Has the player brought Mara to the Great Valley?
Handler_InjuryCheck_GreatValley 60755 LD A,(47771) Jump to Handler_InjuryCheck_Return if *CurrentRoom isn't room 5: " The Great Valley".
60758 CP 5
60760 JR NZ,Handler_InjuryCheck_Return
60762 LD A,44 Jump to Handler_InjuryCheck_Return if ValidateItemPresent reports that "The Princess,Mara" isn't in the current room.
60764 CALL ValidateItemPresent
60767 JR NZ,Handler_InjuryCheck_Return
60769 POP HL Restore HL from the stack.
60770 JP GameComplete Jump to GameComplete.
Handler_InjuryCheck_Return 60773 RET Return.
Prev: 60569 Up: Map Next: 60774