Prev: 6669 Up: Map Next: 669B
6681: Handle Monster Throwing
State 03 of the monster; it waits for the timer to run out and then turns into something else. If the monster has been hit by a flour shot (and so is white) it is removed. Otherwise it becomes the pike (ID 1A) or the tin can (ID 1C), depending on bit 1 of the number of ingredients needed, and a sound is started.
Input
IX Actor
HandleMonster_Throwing 6681 DEC (IX+$07) Decrease the timer in byte 07 of the actor by one.
6684 RET NZ Return if the timer is not zero.
6685 LD A,(IX+$03) Fetch the colour of the monster.
6688 CP $47 Is the monster white (INK:WHITE, PAPER:BLACK (BRIGHT)), which means it has been hit?
668A LD A,$00 Set the actor ID to 00 (the actor will be removed).
668C JR Z,HandleMonster_SetID Jump to HandleMonster_SetID if the monster has been hit.
668E LD A,($5F2F) Fetch the number of ingredients needed.
6691 AND %00000010 Keep only bit 1.
6693 ADD A,$1A Add 1A to choose between the pike and the tin can.
HandleMonster_SetID 6695 LD (IX+$00),A Set the actor ID to the new nasty.
6698 JP StartFallingSlide Jump to StartFallingSlide.
Prev: 6669 Up: Map Next: 669B