![]() |
Routines |
Prev: F62B | Up: Map | Next: F69F |
|
||||
The player wants to kill the Roman, check which version of the Roman is is in the current room.
|
||||
Process_KillRomanWithSword | F643 | LD HL,$E341 | Call CheckItemGroupPresent with Data_ItemGroup_Roman. | |
F646 | CALL CheckItemGroupPresent | |||
Print "You've done that already." if the Roman is already dead...
|
||||
F649 | CP $0C | Jump to Response_YouveDoneThatAlready if the version of the Roman in the current room is either "The body of the Roman" or "The body of the Roman". | ||
F64B | JP Z,Response_YouveDoneThatAlready | |||
F64E | CP $55 | |||
F650 | JP Z,Response_YouveDoneThatAlready | |||
F653 | LD ($A773),A | Temporarily stash the version of the Roman in *TemporaryStorage_SingleByte. | ||
Make sure the player is even carrying a sword.
|
||||
F656 | CALL IsPlayerCarryingSword | Call IsPlayerCarryingSword. | ||
F659 | LD A,($A773) | Restore the version of the Roman from *TemporaryStorage_SingleByte. | ||
F65C | CP $04 | Jump to IsRomanCamping if the version of the Roman is greater than or equal to item 04: N/A. | ||
F65E | JR NC,IsRomanCamping | |||
F660 | LD A,$02 | Call Handler_DestroyItemEvent with item 02: N/A. | ||
F662 | CALL Handler_DestroyItemEvent | |||
F665 | LD A,$03 | Call Handler_DestroyItemEvent with item 03: N/A. | ||
F667 | CALL Handler_DestroyItemEvent | |||
F66A | LD A,$08 | Call Handler_DestroyItemEvent with item 08: N/A. | ||
F66C | CALL Handler_DestroyItemEvent | |||
Change the Roman state!
|
||||
F66F | LD BC,$070A | Call TransformItem to transform item 07 ( N/A) into item 0A ("The Roman,camped"). | ||
F672 | CALL TransformItem | |||
Print "The Roman is unnerved by the
ferocity of your attack.
He runs off,in panic.".
|
||||
F675 | LD HL,$DCFE | HL=Messaging_RomanIsUnnerved. | ||
F678 | JP PrintStringAndNewline_Duplicate | Jump to PrintStringAndNewline_Duplicate. | ||
If the Roman is camped, you can surprise attack him and can kill him.
|
||||
IsRomanCamping | F67B | CP $0A | Jump to KillRomanWithSword if the version of the Roman is not "The Roman,camped". | |
F67D | JR NZ,KillRomanWithSword | |||
Poor guy is just camping and now he's dead, I hope you're happy with yourself.
Change the Roman state!
|
||||
F67F | LD BC,$0A0C | Call TransformItem to transform item 0A ("The Roman,camped") into item 0C ("The body of the Roman"). | ||
F682 | CALL TransformItem | |||
This entry point is used by the routines at Process_KillFomorian, Process_KillTrader and Process_KillGuard.
Print "Your blow strikes true.
He is dead.".
|
||||
Response_KilledRoman | F685 | LD HL,$DD4A | HL=Messaging_BlowStrikesTrue. | |
F688 | JP PrintStringAndNewline_Duplicate | Jump to PrintStringAndNewline_Duplicate. | ||
The player has killed the Roman ... process this event.
Change the Roman state!
|
||||
KillRomanWithSword | F68B | LD BC,$0B55 | Call TransformItem to transform item 0B ("The captured Roman") into item 55 ("The body of the Roman"). | |
F68E | CALL TransformItem | |||
The Roman is no longer captured, so unset the game flag.
|
||||
F691 | LD HL,$A787 | Reset bit 0 of *Flag_EventStates which relates to having captured the Roman. | ||
F694 | RES 0,(HL) | |||
F696 | CALL Response_KilledRoman | Call Response_KilledRoman. | ||
Print "That was very cowardly.".
|
||||
F699 | LD HL,$DD6E | HL=Messaging_VeryCowardly. | ||
F69C | JP PrintStringAndNewline_Duplicate | Jump to PrintStringAndNewline_Duplicate. |
Prev: F62B | Up: Map | Next: F69F |