Skip to content

Empyreal is an Empire-like game in Python with a curses-based UI.

Notifications You must be signed in to change notification settings

mkramlich/empyreal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Empyreal is an Empire-like game written in Python using curses for the UI.

It is under construction. Much work remains to be done, features to add, optimizations to perform, user conveniences and options to add, etc.

It is mostly an excuse to familiarize myself with Python's curses module, and to refamiliarize with curses in general.

The UI is currently designed with some assumptions that make it work best in a terminal whose minimum dimensions are 80 cols by 42 lines.

If you start the program without arguments, it loads the previous game state found in the file 'saves/last'. If you wish to continue from a different game state, specify an alternate filename as the only argument. Currently both the save and load user commands use the 'saves/last' filename. (In the future we'll add support for more options and detailed control of where and how to save/load.)

The following chart specifies the meaning of the symbols shown on the map, broken down by category or type. As a convenience, the symbol is the same character used when the user is expected to give input specifying what type to use. For example, as in the case when specifying what unit type to build, or what terrain to use in the editor's brush.

Map Key:

type        name        char
unit types -----------------
            partisans   P
            infantry    I
            armor       A
terrains -------------------
            plains      .
            mountains   ^
            water       ~
misc -----------------------
            city        #

Here are lists of the keyboard commands available in each mode. Note that case is important. Destructive or rarely-used commands tend to use an uppercase letter. Common or harmless commands tend to use lowercase.

Browse Map Mode

           i: move cursor north      ( 0, -1)
           u: move cursor north-west (-1, -1)
           o: move cursor north-east (+1, -1)
           m: move cursor south      ( 0, +1)
           n: move cursor south-west (-1, +1)
           ,: move cursor south-east (+1, +1)
           j: move cursor west       (-1,  0)
           k: move cursor east       (+1,  0)
    SPACEBAR: select unit at cursor, and switch to Selected Unit Mode
           b: switch to Specify City Build Type Mode
           d: switch to Editor Mode
           S: save
           L: load
           T: end turn
           Q: quit program

Selected Unit Mode

           i: move unit north      ( 0, -1)
           u: move unit north-west (-1, -1)
           o: move unit north-east (+1, -1)
           m: move unit south      ( 0, +1)
           n: move unit south-west (-1, +1)
           ,: move unit south-east (+1, +1)
           j: move unit west       (-1,  0)
           k: move unit east       (+1,  0)
           .: cycle selected unit to the next eligible unit in same location
           D: disband selected unit
    SPACEBAR: unselect unit, and switch back to Browse Map Mode

NOTE ABOUT MOVEMENT COMMANDS:
    When you attempt to move a unit into a location containing an enemy unit, your unit will attack an enemy unit there, instead of moving. An attack will either destroy or damage the enemy unit, or, fail to have any effect at all. If the target location instead contains an unoccupied city that you do not own/control, then your unit will conquer the city and take ownership of it.

Specify City Build Type Mode
    
    Hit the character for the unit type you wish to build.
    For example, 'a' for armor. 'i' for infantry. Case not important.
    Then the mode exits and returns to Browse Map Mode.

Editor Mode

           r: prompt for new name for city at cursor
              NOTE: This enters a special mode where the city's name is shown
              in the top-left corner of the screen, overlaying the map. Use the
              arrow keys to move your cursor around in the text field containing
              the name, typing new characters at any position, and use Ctrl-H
              to backspace delete characters, as needed. Press enter/return when
              you are done, and this special mode exits back to Browse Map Mode.
           c: add city at cursor
           a: add unit at cursor
           e: modify terrain at cursor
           f: cycle paintbrush faction
           w: switch to Specify Paintbrush Unit Type Mode
           p: switch to Specify Paintbrush Terrain Mode
    SPACEBAR: select unit at cursor, switching to Editor Selected Unit Mode
           D: delete all at cursor (units, cities, and resets terrain to plains)
           d: switch back to Browse Map Mode

NOTE ABOUT EDITTING COMMANDS:
    Adding a unit will use the current brush unit type, and faction as owner.
    Adding a city will use the current brush faction as owner.
    Modifying terrain will change the terrain to the current brush terrain.

Editor Selected Unit Mode

           i: move unit north      ( 0, -1)
           u: move unit north-west (-1, -1)
           o: move unit north-east (+1, -1)
           m: move unit south      ( 0, +1)
           n: move unit south-west (-1, +1)
           ,: move unit south-east (+1, +1)
           j: move unit west       (-1,  0)
           k: move unit east       (+1,  0)
           .: cycle selected unit to the next eligible unit in same location
    SPACEBAR: unselect unit, switching back to Editor Mode

NOTE ABOUT MOVING COMMANDS:
    Unlike in regular gameplay (in Selected Unit Mode), moving a unit in this special mode does NOT spend movement points, and therefore there is no limit as to how much you can move a unit in this mode.

Specify Paintbrush Terrain Mode

    Hit the character for the terrain you wish to use as the brush terrain type.
    For example, '.' for plains. '^' for mountains.
    Then the mode exits and returns to Editor Mode.

Specify Paintbrush Unit Type Mode

    Hit the character for the unit type you wish to use as the brush unit type.
    For example, 'a' for armor. 'i' for infantry. Case is not important.
    Then the mode exits and returns to Editor Mode.

Game Over Mode

    This mode is entered whenever victory conditions are achieved. A special message will appear in the scrolling messages area on the screen, indicating you have entered this mode.

    This mode is similar to Browse Map Mode except commands related to game play are disabled. For example, you can move the cursor around and explore the map, but will not be able to make attacks or end the turn. Eventually you'll want to press 'Q' to quit.

About

Empyreal is an Empire-like game in Python with a curses-based UI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages