choices.ChoiceNavigate('Descend through the stone arch', level='level_3', room='temple_room'), choices.ChoiceNavigate('Go back to the Grande Hall', level='level_2', room='grande_hall'), ], ) }, scenes={ 'head': interactions.thing.Thing( name='Mirror', opening_text='Assuming the gargoyle might refer to Robert, you present the mummified head.\n' 'That gargoyle bows and then gets up and moves to the side,\n' 'revealing a stone archway and a staircase leading down.', choices=[ choices.ChoiceNavigate('Descend through the stone arch', level='level_3', room='temple_room'), choices.ChoiceNavigate('Go back to the Grande Hall', level='level_2', room='grande_hall'), ], events=[events.SetRoomScreen('clear'), events.RemoveItem(item.head)] ), # == fight the Gargoyle == 'fight1': interactions.thing.Thing( name='Gargoyle attacks!', opening_text='You have only a fraction of a second to respond!', choices=[ choices.ChoiceInspectRoom('Use Holy Cross', scene='fight_cross', conditions=[conditions.PlayerHasItem(item.holy_cross)]), choices.ChoiceInspectRoom('Shoot crossbow', scene='fight_shoot', conditions=[conditions.PlayerHasItem(item.crossbow)]), choices.ChoiceInspectRoom('Use Holy Water', scene='fight_water', conditions=[conditions.PlayerHasItem(item.holy_water)]), choices.ChoiceInspectRoom('Burn him with fire', scene='fight_fire', conditions=[conditions.PlayerHasItem(item.flammable_oil)]), choices.ChoiceInspectRoom('Throw Nitroglycerin', scene='fight_nitro',
conditions=[conditions.PlayerHasItem(item.holy_water)]), choices.ChoiceInspectRoom( 'burn with oil', 'burn', conditions=[conditions.PlayerHasItem(item.flammable_oil)]), ], ), 'cross': interactions.thing.Thing( name='Combat with Ghoul', opening_text='You raise you cross before the ghoul.\n' 'He hisses and cowers away from the light.\n' 'You advance towards him as his skin melts away,\n' 'then this flesh until he crumbles into a pile of bones.', events=[ events.SetRoomScreen('grande_hall'), events.UnlockJournal(entry.ghoul_defeated) ], choices=[choices.ChoiceBackToRoom('Observe the Grande Hall')], ), 'crossbow': interactions.thing.Thing( name='Combat with Ghoul', opening_text= 'Without hesitation you raise your crossbow and shoot a bolt straight into the gouls heart.\n' 'The power of the blow sends him flying to his back where he lies motionless.', events=[ events.SetRoomScreen('grande_hall'), events.UnlockJournal(entry.ghoul_defeated) ], choices=[choices.ChoiceBackToRoom('Observe the Grande Hall')],
choices=[ choices.ChoiceInspectRoom('Bait the gargoyle', 'gargoyle_bait') ]), 'gargoyle_bait': interactions.thing.Thing( name='Laboratory', opening_text= 'You position yourself behind the chemistry apparatus.\n' 'The gargoyle shakes the room with a mighty roar and charges straight at you.\n' 'Just at the right time you leap out of the way as the gargoyle\n' 'collides with the nitro filled glass.\n' 'A large explosion catches you mid air and slams you against the wall.', choices=[choices.ChoiceInspectRoom('Stand up', 'gargoyle_gone')]), 'gargoyle_gone': interactions.thing.Thing( name='Laboratory', opening_text= 'Standing back up you prepare for another attack but as the smoke settles\n' 'the only thing left of the gargoyle are nothing more than scattered rocks.\n' 'The path in the statue room is now clear.', choices=[ choices.ChoiceNavigate('Go back to the Grande Hall', level='level_2', room='grande_hall'), choices.ChoiceNavigate('Go back to the Statue Room', level='level_2', room='statue_room'), ], events=[events.SetRoomScreen('clear', room='statue_room')]) })
'gem': interactions.thing.Thing( name='Mirror Passage', opening_text='The gem fits perfectly into the socket.\n' 'A rumbling of heavy cogs shifts the mirror to the side to reveal a large stone passage.\n' 'A dimly lit room filled with statues is ahead.', choices=[ choices.ChoiceNavigate('Enter the Statue room', level='level_2', room='statue_room'), choices.ChoiceNavigate('Leave room', level='level_2', room='grande_hall'), ], events=[ events.SetRoomScreen('revealed'), ]), 'tap': interactions.thing.Thing( name='Mirror Passage', opening_text='Tapping on the mirror you can hear a hollow sound.\n' 'There is a passage behind the mirror but it seems too large to move by hand.', choices=[ choices.ChoiceInspectRoom('Break the mirror', scene='break'), choices.ChoiceInspectRoom( text='place gem in the open socket', scene='gem', conditions=[conditions.PlayerHasItem(item.gem)]), choices.ChoiceNavigate('Leave room', level='level_2', room='grande_hall'),
choices.ChoiceNavigate('Leave room', level='level_1', room='entrance_hall'), ], scenes={ 'destroy_zombie': interactions.thing.Thing( name='Destroy Zombie', opening_text='The zombie collapses into ashes.', choices=[ choices.ChoiceInspectRoom('Search the ashes', scene='ashes'), choices.ChoiceNavigate('Leave room', level='level_1', room='entrance_hall'), ], events=[events.SetRoomScreen('Ashes')]), 'ashes': interactions.thing.Thing( name='Pile of Ashes', opening_text= 'You swipe the ashes with your boot and find what seems to be an engagement ring.\n' 'It looks very valuable.', choices=[ choices.ChoiceNavigate('Leave room', level='level_1', room='entrance_hall') ], events=[ events.AddItem(item.engagement_ring), events.UnlockJournal(entry.acquired_ring) ]),