Code Monkey home page Code Monkey logo

sector7557's Introduction

sector7557

a peer-to-peer distributed multi-user dungeon, built ontop of cabal

image

Create Walk with the arrow keys, place tiles by pressing WASD. Change a selected tile by pressing keys on your keyboard. Certain tiles are impassable.

Describe Stand on a tile, press Enter and type to describe the tile underneath the player character. The description will be shown to anyone who stands on the tile. Even if the tile is replaced with another sigil, the description will remain. Descriptions can be overwritten in the same manner as they are written.

Chat Chat with others in the same world by pressing Enter and invoking the /w command.

the walkers phase in and out of the sectors, leaving traces of the worlds they build

Install

npm i -g sector7557

Usage

# read the help
sector7557 --help
sector7557 --manual
# join sector7557
sector7557 mud.cblgh.org    # join the public instance
sector7557 --new            # create a new world

Commands

The commands can be invoked by pressing enter, to trigger the terminal, and then writing them per the syntax.

  /w <chat message>   write a chat message
  <enter> <desc>      start entering a description for tile at player position
  /nick <nickname>    set nickname
  /sector <name>      name or describe the entire current sector
  /fg <color name>    set tile foreground color
  /bg <color name>    set tile background color
  /self <char|color>  if 1 character, set's player character. if color code, sets player color
  /help               show the ingame help
  /reset              reset current fg/bg color selection
  /legend             print a legend of the allowed and passable sigils which can be placed
  /clear              clear non-player chat messages (e.g. legend, help)
  <keypress>          press various keyboard keys to select a tile sigil for creation
  <ctrl-l>            force redraw screen (clears up buggy screen artefacts from ANSI color clash)

Color name

You can set colors for tiles and for your player character using the fg, bg and self commands from above. When setting a color, a code from below must be used.

Note: Colors on the same line below, e.g. red2, pink, are the same color, the latter being an alias.

  black
  black2
  grey, gray
  grey2, gray2
  red
  red2, pink
  green
  green2
  yellow
  yellow2
  blue
  blue2
  magenta
  magenta2
  teal, cyan
  teal2, cyan2
  white
  white2
  none

Tiles and Sigils

The world is built out of tiles, which consist of a sigil and foreground / background colors. A sigil is a simple ASCII character.

There is a limited amount of characters which are allowed as tiles at the moment, a subset of which are passable (can be traversed by a player).

See the list of sigils below. It can also be found inside sector7557 by invoking /legend.

  PASSABLE
  .|-_,>x<^v¤!?"
  
  ALLOWED (but not passable)
  \* #o+$%&/()=;§:

It is likely that the amount of sigils will be expanded in future patches.

Terminology

  • The player is a walker
  • The world is made out of sectors
  • Each screen is a map
  • A tile is a combination of a sigil, a foreground color (fg), and a background color (bg)

sector7557's People

Contributors

cblgh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sector7557's Issues

Missing logo.txt file

MacOS 10.13
node v12.16..1
npm 6.13.4

$ npm install --global sector7557

+ [email protected]
$ sector7557 mud.cblgh.org

internal/fs/utils.js:230
    throw err;
    ^

Error: ENOENT: no such file or directory, open '/usr/local/lib/node_modules/sector7557/logo.txt'
    at Object.openSync (fs.js:457:3)
    at Object.readFileSync (fs.js:359:35)
    at Object.<anonymous> (/usr/local/lib/node_modules/sector7557/game.js:75:17)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/usr/local/lib/node_modules/sector7557/logo.txt'
}
$ ls /usr/local/lib/node_modules/sector7557/

LICENSE       constants.js  game.js*      package.json  types.js      walker.js
README.md     db.js         node_modules/ sectors.js    views/

Adjacent tile descriptions don't display properly

I can't tell exactly what the cause is, but here are the steps to reproduce:

  1. Assign unique descriptions to three tiles horizontally or vertically adjacent to each other.
  2. Move through the tiles in the direction that they are adjacent (i.e. starting at one end of the line and moving along it)

Expected behaviour

  1. The three tile descriptions display as you walk over each tile.

Actual behaviour

  1. The tile descriptions will sometimes not show up, or only show the first tile description, or even show only parts of the tile descriptions

This seems to go away once I ctrl-c and reload but if I edit one of the three tiles again then it comes back.

Performance seems to decrease based on number of calls to chalk

In areas with high amounts of coloured tiles, the performance drops significantly (doubly so if the tiles have custom bg values). Creating a large amount of tiles with default colours (i.e. after typing /reset) does not appear to affect performance.

Platform:
Windows 10 64-bit
Node v10.16.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.