diff --git a/examplegame/__init__.py b/examplegame/__init__.py index 417a0e4..91cc4e7 100644 --- a/examplegame/__init__.py +++ b/examplegame/__init__.py @@ -6,90 +6,14 @@ from agame.trigger import * # This is the *game* here database = Database() -database.add_items( - Item( - id="glowing_rock", - name="glowing rock", - desc="This rock is glowing.", - synonyms=("rock",), - room_desc="You see a ((glowing rock)). You have **got** to have it.", - triggers={ - GET: [ - PrintAction( - "You try to pick up the rock, but it slips out of your greasy hands.", - "Maybe you should wash your hands, you disgusting little man.", - ) - ], - LOOK: [PrintAction("Man, that rock looks awesome.")], - }, - ), - Item( - id="cell_door", - name="door", - room_desc="A ((door)) sits on the far wall.", - triggers={ - GET: [PrintAction("The door is pretty attached to its wall.")], - OPEN: [ - CheckVarAction( - "cell_door_open", - Compare.EQUALS, - True, - yes=[ - PrintAction( - "It's already open. You push on the door even //more//, just in case." - ), - SleepAction(1.0), - PrintAction("..."), - SleepAction(1.0), - PrintAction("Yup, still open."), - ], - no=[ - SetVarAction("cell_door_open", True), - PrintAction("The door swings open, thanks to you."), - ], - ) - ], - CLOSE: [ - CheckVarAction( - "cell_door_open", - Compare.EQUALS, - True, - yes=[ - PrintAction("You close that door. Nice job."), - SetVarAction("cell_door_open", False), - ], - no=[PrintAction("The door is already closed.")], - ) - ], - LOOK: [ - CheckVarAction( - "cell_door_open", - Compare.EQUALS, - True, - yes=[PrintAction("It's a door, wide open, because you opened it.")], - no=[PrintAction("A closed door. You can change this.")], - ) - ], - }, - ), -) -database.add_rooms( - Room( - id="start", - name="Test room", - desc="You're in ((Todd's Test Cell)).", - items=[ - database.items["glowing_rock"].create_inst(), - database.items["cell_door"].create_inst(), - ], - ), -) + +from . import items +from . import rooms +from . import vars # Build the game state game = Game( database=database, room=database.rooms["start"], - vars={ - "cell_door_open": False, - }, + vars=vars.vars, ) diff --git a/examplegame/items.py b/examplegame/items.py new file mode 100644 index 0000000..b0f2f6b --- /dev/null +++ b/examplegame/items.py @@ -0,0 +1,72 @@ +from agame.item import Item +from agame.trigger import * +from agame.action import * +from . import database + +database.add_items( + Item( + id="glowing_rock", + name="glowing rock", + desc="This rock is glowing.", + synonyms=("rock",), + room_desc="You see a ((glowing rock)). You have **got** to have it.", + triggers={ + GET: [ + PrintAction( + "You try to pick up the rock, but it slips out of your greasy hands.", + "Maybe you should wash your hands, you disgusting little man.", + ) + ], + LOOK: [PrintAction("Man, that rock looks awesome.")], + }, + ), + Item( + id="cell_door", + name="door", + room_desc="A ((door)) sits on the far wall.", + triggers={ + GET: [PrintAction("The door is pretty attached to its wall.")], + OPEN: [ + CheckVarAction( + "cell_door_open", + Compare.EQUALS, + True, + yes=[ + PrintAction( + "It's already open. You push on the door even //more//, just in case." + ), + SleepAction(1.0), + PrintAction("..."), + SleepAction(1.0), + PrintAction("Yup, still open."), + ], + no=[ + SetVarAction("cell_door_open", True), + PrintAction("The door swings open, thanks to you."), + ], + ) + ], + CLOSE: [ + CheckVarAction( + "cell_door_open", + Compare.EQUALS, + True, + yes=[ + PrintAction("You close that door. Nice job."), + SetVarAction("cell_door_open", False), + ], + no=[PrintAction("The door is already closed.")], + ) + ], + LOOK: [ + CheckVarAction( + "cell_door_open", + Compare.EQUALS, + True, + yes=[PrintAction("It's a door, wide open, because you opened it.")], + no=[PrintAction("A closed door. You can change this.")], + ) + ], + }, + ), +) diff --git a/examplegame/rooms.py b/examplegame/rooms.py new file mode 100644 index 0000000..e7ac796 --- /dev/null +++ b/examplegame/rooms.py @@ -0,0 +1,14 @@ +from agame.room import Room +from . import database + +database.add_rooms( + Room( + id="start", + name="Test room", + desc="You're in ((Todd's Test Cell)).", + items=[ + database.items["glowing_rock"].create_inst(), + database.items["cell_door"].create_inst(), + ], + ), +) diff --git a/examplegame/vars.py b/examplegame/vars.py new file mode 100644 index 0000000..78b9646 --- /dev/null +++ b/examplegame/vars.py @@ -0,0 +1,7 @@ +""" +Define all game variables here. +""" + +vars = { + "cell_door_open": False, +}