Prev: F62B Up: Map Next: F69F
F643: Process: Kill Roman With Sword
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