2 # This file is part of Realism, which is Copyright FunnyMan3595 (Charlie Nolan)
3 # and licensed under the GNU GPL v3. For more details, see LICENSE in the main
6 '''The main file of the Realism RPG engine. Runs the main game, or whatever mod is specified.'''
8 # Realism separates the code into three main pieces: UI, engine, and game/mod.
9 # The ui used will be one of the modules in the ui subdirectory. It handles all
10 # direct interaction with the user.
11 # The engine is stored in the engine subdirectory and consistes of all of the
12 # generic code that doesn't deal directly with the game and its story, such as
13 # the combat mechanics. It also has virtual modules that load data from the
15 # Everything that can be changed by a mod is stored in the main_game
16 # subdirectory. This includes monsters, spells, maps, and items. Actual mods
17 # can be put in a mods subdirectory of Realism's main directory, or in the
18 # user's home directory (as explained below).
21 # We allow mods to exist in the user's home directory, path:
22 # ~/.realism-rpg/mods/<modname>/
23 # On Windows XP, this translates to:
24 # <drive>:\Documents and Settings\<user>\.realism-rpg\mods\<modname>\
26 from os
import makedirs
27 from os
.path
import join
, expanduser
, isdir
28 user_dir
= join(expanduser('~'),'.realism-rpg')
29 if not isdir(user_dir
):
31 sys
.path
.append(user_dir
)
35 # Initialize the party.
36 from engine
.party
import HeroParty
37 game
.party
= HeroParty()
40 from ui
.zork_ui
import ZorkUI
41 game
.ui
= ui
= ZorkUI()
43 # Import the maps, register the game object with them, and validate them.
44 from engine
.maps
import maps
45 for game_map
in maps
.values():
49 from engine
.maps
import start_map
51 if "start_map" not in maps
.keys():
52 print "No start map found. Realism will exit."
55 # maps["start"] guaranteed to exist.
56 start_map
= maps
["start_map"]
58 # start_map guaranteed to exist
60 # Tell the UI to use start_map.
61 ui
.map_mode(start_map
)