Prev: 94B1 Up: Map Next: 9670
952B: Action: Kill
Attack the named creature with a weapon.
ActionKill 952B CALL Parser_ValidateDirectObject Return if the command does not name a single object.
952E RET C
952F JR ActionKill_Step1 Continue at ActionKill_Step1 to match the creature the player named.
Print "Please be more specific.".
ActionKill_Loop1 9531 LD HL,$642C HL=Messaging_PleaseBeMoreSpecific.
9534 JR ActionKill_Loop3 Jump to ActionKill_Loop3.
Print "You can't.".
ActionKill_Loop2 9536 LD HL,$645B HL=Messaging_YouCanT.
ActionKill_Loop3 9539 CALL PrintStringAndANewline Call PrintStringAndANewline.
953C RET Return.
ActionKill_Step1 953D LD HL,$89F1 Jump to ActionKill_Step2 unless the command matches the phrase at 89F1.
9540 CALL Parser_AdvanceToSeparator
9543 JR NZ,ActionKill_Step2
9545 LD HL,$7C7B Print What with?.
9548 CALL PrintStringAndANewline
954B JR ActionKill_Loop1 Continue at ActionKill_Loop1 to ask the player to be more specific.
ActionKill_Step2 954D LD HL,$8A0F Jump to ActionKill_Step6 unless the command matches the phrase at 8A0F.
9550 CALL Parser_AdvanceToSeparator
9553 JR NZ,ActionKill_Step6
This entry point is used by the routine at ActionShoot.
ActionKill_Step3 9555 LD A,$27 Jump to ActionKill_Step4 when The alien commander, in space armour. (27) is here or being carried.
9557 CALL IsObjectInCurrentRoom
955A JR Z,ActionKill_Step4
Print "He's already dead.".
955C LD HL,$7CB3 HL=Messaging_HeSAlreadyDead.
955F JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step4 9562 LD A,$01 Jump to ActionKill_Step5 when the player is carrying A laser pistol. (01).
9564 CALL IsObjectCarried
9567 JR Z,ActionKill_Step5
9569 LD HL,$7A59 Print You're not carrying on the same line.
956C CALL PrintString
Print "a gun".
956F LD HL,$762B HL=Messaging_AGun.
9572 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
Print "Space armour is impervious to laser weopons.".
ActionKill_Step5 9575 LD HL,$7C86 HL=Messaging_SpaceArmourIsImperviousToLaserWeopons.
9578 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step6 957B LD HL,$8A23 Jump to ActionKill_Step9 unless the command matches the phrase at 8A23 (The alien commander, in space armour. (27)).
957E CALL Parser_AdvanceToSeparator
9581 JR NZ,ActionKill_Step9
9583 LD A,$27
9585 CALL IsObjectInCurrentRoom
9588 JR Z,ActionKill_Step7
Print "He's already dead.".
958A LD HL,$7CB3 HL=Messaging_HeSAlreadyDead.
958D JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step7 9590 LD A,$0A Jump to ActionKill_Step8 when the player is carrying A space axe. (0A).
9592 CALL IsObjectCarried
9595 JR Z,ActionKill_Step8
9597 LD HL,$7A59 Print You're not carrying on the same line.
959A CALL PrintString
Print "an axe".
959D LD HL,$76A0 HL=Messaging_AnAxe.
95A0 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step8 95A3 LD BC,$2700 Move The alien commander, in space armour. (27) to nowhere (00).
95A6 CALL UpdateObjectLocation
95A9 LD BC,$2835 Move The dead body of the alien commander. (28) to room 35: " The Alien Commander's Chamber".
95AC CALL UpdateObjectLocation
95AF LD BC,$0935 Move A key. (09) to room 35: " The Alien Commander's Chamber".
95B2 CALL UpdateObjectLocation
Print "The axe pierces the space armour The commander falls down,dead. As he falls, a key drops to the floor.".
95B5 LD HL,$7CC6 HL=Messaging_TheAxePiercesTheSpaceArmourTheCommanderF.
95B8 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step9 95BB LD HL,$8A37 Jump to ActionKill_Step13 unless the command matches the phrase at 8A37.
95BE CALL Parser_AdvanceToSeparator
95C1 JR NZ,ActionKill_Step13
This entry point is used by the routine at ActionShoot.
ActionKill_Step10 95C3 LD A,$12 Jump to ActionKill_Step11 when An android guard. He has shot at you and missed. (12) is here or being carried.
95C5 CALL IsObjectInCurrentRoom
95C8 JR Z,ActionKill_Step11
Print "He's already dead.".
95CA LD HL,$7CB3 HL=Messaging_HeSAlreadyDead.
95CD JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step11 95D0 LD A,$01 Jump to ActionKill_Step12 when the player is carrying A laser pistol. (01).
95D2 CALL IsObjectCarried
95D5 JR Z,ActionKill_Step12
95D7 LD HL,$7A59 Print You're not carrying on the same line.
95DA CALL PrintString
Print "a gun".
95DD LD HL,$762B HL=Messaging_AGun.
95E0 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step12 95E3 LD BC,$1200 Move An android guard. He has shot at you and missed. (12) to nowhere (00).
95E6 CALL UpdateObjectLocation
95E9 LD BC,$130D Move A dead android guard. (13) to room 0D: " The Guard Room".
95EC CALL UpdateObjectLocation
Print "Good shot! He is dead.".
95EF LD HL,$7D2D HL=Messaging_GoodShotHeIsDead.
95F2 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step13 95F5 LD HL,$8A4B Jump to ActionKill_Step18 unless the command matches the phrase at 8A4B.
95F8 CALL Parser_AdvanceToSeparator
95FB JR NZ,ActionKill_Step18
This entry point is used by the routine at ActionShoot.
ActionKill_Step14 95FD LD A,$80 The creatures that can be shot here start at scenic slot 00.
95FF LD B,$04
ActionKill_Loop4 9601 LD C,A Test this scenic slot.
9602 CALL IsObjectInCurrentRoom Call IsObjectInCurrentRoom to test whether the object is here.
9605 JR Z,ActionKill_Step15 This creature is here.
9607 LD A,C Try the next scenic slot.
9608 INC A
9609 DJNZ ActionKill_Loop4 Repeat for the other creatures in the group.
Print "He's already dead.".
960B LD HL,$7CB3 HL=Messaging_HeSAlreadyDead.
960E JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step15 9611 LD A,$01 Jump to ActionKill_Step16 when the player is carrying A laser pistol. (01).
9613 CALL IsObjectCarried
9616 JR Z,ActionKill_Step16
9618 LD HL,$7A59 Print You're not carrying on the same line.
961B CALL PrintString
Print "a gun".
961E LD HL,$762B HL=Messaging_AGun.
9621 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step16 9624 LD A,$05 One chance in 05 that the shot misses.
9626 CALL GenerateRandomNumber Call GenerateRandomNumber to generate random number.
9629 JR NZ,ActionKill_Step17 The shot misses.
Print "You missed!".
962B LD HL,$7D44 HL=Messaging_YouMissed.
962E JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step17 9631 LD B,C Remove the creature that was hit.
9632 LD C,$00
9634 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
9637 LD A,E Clear the scenic event that belonged to that creature.
9638 CALL HandlerToggleScenicFlag
963B LD A,$2C Leave the corpse in the current room.
963D ADD A,E
963E LD B,A
963F LD A,($6223)
9642 LD C,A
9643 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
Print "Good shot! He is dead.".
9646 LD HL,$7D2D HL=Messaging_GoodShotHeIsDead.
9649 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step18 964C LD HL,$8A5F Jump to ActionKill_Step21 unless the command matches the phrase at 8A5F.
964F CALL Parser_AdvanceToSeparator
9652 JR NZ,ActionKill_Step21
This entry point is used by the routine at ActionShoot.
ActionKill_Step19 9654 LD A,$01 Jump to ActionKill_Step20 when the player is carrying A laser pistol. (01).
9656 CALL IsObjectCarried
9659 JR Z,ActionKill_Step20
965B LD HL,$7A59 Print You're not carrying on the same line.
965E CALL PrintString
Print "a gun".
9661 LD HL,$762B HL=Messaging_AGun.
9664 JP ActionKill_Loop3 Jump to ActionKill_Loop3.
Print "It has no apparent effect.".
ActionKill_Step20 9667 LD HL,$7D50 HL=Messaging_ItHasNoApparentEffect.
966A JP ActionKill_Loop3 Jump to ActionKill_Loop3.
ActionKill_Step21 966D JP ActionKill_Loop2 Continue at ActionKill_Loop2 to say the player can't.
Prev: 94B1 Up: Map Next: 9670