![]()  | 
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 |