The Dvorak Engine

From Dvorak - A Blank-Card Game
Jump to navigationJump to search

The Dvorak Engine is a MUSH object that supports the storage and play of Dvorak games, which is running on DvorakMUSH.

Engine usage

To start a new game of creative Dvorak, use the cleardeck command to clear the Engine of any cards that might be there, and newcard to begin creating cards.

If you want to play a deck from the archives, click the "Generate MUSHcode" link on that deck's page to get a list of generated loadcard commands (topped with a cleardeck and ending with an @emit to alert nearby players to the deck being loaded) - this should be copied-and-pasted into your telnet client to create the deck in the Engine. (If your telnet client interprets the entire text as a single line and rejects it, you'll need to cut and paste it line-by-line.)

There are no particular guidelines for usage - if you've made any cards with it, though, it's worth taking a log of the deck (logcards) and saving it to a text file, before you disconnect - someone else might use the Dvorak Engine in your absence, and your cards would be lost. If you're halfway through an actual game when you leave, use savedeck with a suitably unique save-name, and the game and cards can be retrieved and resumed at a later date. (You can use savedeck as temporary storage for a deck, but there's no guarantee that someone won't deletedeck to tidy up, while you're gone.)

listdecks will give you a list of all saved games currently stored in the Engine - although the names of some of these might tally with decks in the archive, they're not necessarily up-to-date copies, so feed in fresh MUSHcode if in doubt.

Commands

Key

When you use the commands below...

MUSH viewall.gif Everyone sees what you've done, and the results it had.
MUSH viewback.gif Everyone sees that you've done what you've done, but only you see the actual results of it.
MUSH viewnone.gif Only you see what you've done, and its results.

Basic Gameplay

  • drawcard MUSH viewback.gif
Draw a card from the draw pile.
  • playcard <num> MUSH viewall.gif
Play a specific card from your hand - if it's an Action, it goes to the discard pile; if it's a Thing, it is put into play under your control.
  • discard <num> MUSH viewall.gif
Discard a specific card from your hand, to the discard pile.
  • destroy <num> MUSH viewall.gif
Destroy a specific card in play, moving it to the discard pile.

Viewing the Game

  • readcard <num> MUSH viewnone.gif
Read the full text of a specific card. You can read any card that exists, even if it's in another Player's hand or the draw pile, or hasn't been approved yet. (You just won't be told where it is.)
  • viewhand MUSH viewnone.gif
List the cards you have in your hand.
  • viewhand <player> MUSH viewback.gif
List the cards a specific opponent has in their hand.
  • viewplay MUSH viewnone.gif
List the cards currently in play, and who controls them.
  • count <player> MUSH viewnone.gif
Count the cards in a specific Player's hand.
  • countdraw MUSH viewnone.gif
Count the cards in the draw pile.
  • viewdisc MUSH viewnone.gif
List the contents of the discard pile.
  • viewdraw MUSH viewnone.gif
List the contents of the draw pile.
  • viewvote MUSH viewnone.gif
List any cards which have been created but not yet approved.
  • viewall MUSH viewall.gif
List all cards that have been approved (i.e. all the cards in the game), but this doesn't reveal their locations.
  • viewrep MUSH viewnone.gif
List all repealed cards.

Advanced Gameplay

  • drawvis MUSH viewall.gif
Draw a card from the draw pile and show it to all Players.
  • discrand MUSH viewall.gif
Discard a random card to the discard pile.
  • givecard <num> to <player> MUSH viewall.gif
Take a specific card, no matter where it is, and put it into a specific Player's hand.
  • givething <num> to <player> MUSH viewall.gif
Take a specific card, no matter where it is, and put it into play under a specific Player's control.
  • shuffle MUSH viewall.gif
Shuffle the discard pile into the draw pile.
  • shufcard <num> MUSH viewall.gif
Shuffle a specific card, no matter where it is, into the draw pile.
  • status <num>=<text> MUSH viewall.gif
Set the 'status' of a card to any text you like - a card's status is displayed in 'viewplay' and 'readcard', and can be used to keep track of tokens on the card, its position in play, or some arbitrary, adjustable status ('Undead', 'Wounded', 'Tapped', etc).
"status <num>=" will blank that card's status, and cards automatically lose their status when they're destroyed.
  • playcard <num> onto <num> MUSH viewall.gif
The same as playing a Thing from your hand, except that it's played "onto" another Thing, its status automatically adjusted to reflect that.
  • setnotes <text> MUSH viewall.gif
Sets the game notes (printed as part of viewplay) to whatever text you like - useful for keeping score in games that require it. setnotes by itself will clear the notes.

Card Creation and Amendment

  • newcard <name>/ <type>/<text> MUSH viewall.gif
Create a new card with a name (eg. "Revenge of Godzilla"), a type ("A" for Action, "T" for Thing), and optionally some card text (eg. "Destroy three Things.").
For example:- newcard Revenge of Godzilla/A/Destroy three Things.
A newly-created card is assigned a number and presented to all players for their approval.
  • approve <num> MUSH viewall.gif
Approve a card which a player has created. When a card is approved, it is shuffled into the draw pile.
  • repeal <num> MUSH viewall.gif
Remove a card from the game.
  • editcard <num>= <name>/ <type>/<text> MUSH viewall.gif
Edit an existing card, using similar syntax to creating a new one. This takes effect immediately, but before-and-after versions are displayed to all Players to allow them to check the edit.
  • rename <num>= <name> MUSH viewall.gif
A quick way to adjust a card's name, leaving its type and text intact.

Loading, Saving, Resetting

  • listdecks MUSH viewnone.gif
List all games that have been previously saved in the Engine.
  • savedeck <name> MUSH viewall.gif
Save the current game (including all card positions) under the given name, for future reloading.
  • deletedeck <name> MUSH viewall.gif
Delete an old saved game.
  • newdvorak MUSH viewall.gif
Shuffle all the cards in the game back into the draw pile, for a new game with that deck.
  • cleardeck MUSH viewall.gif
Blank all cards in the current deck, preparing the Engine for a completely new game.
  • logcards MUSH viewnone.gif
Log full details of all cards, including unapproved and repealed ones - you can then paste these into a text file for personal reference, or for manually reformatting for wiki submission.

Limitations

Due to the way the Engine has been built, there are a few mechanics and styles of play it doesn't support:-

  • Multi-deck/CCG Dvorak. The current version of the Engine has been written to run with one shared deck only.
  • Face-down cards. The current version doesn't support face-down cards, although if anyone wants to add functionality for this, it shouldn't be too much work. (A temporary workaround among trusted players would be to just declare you were playing a card face down, creating and playing a blank 'face down' card if you liked, but keeping the actual card in your hand until it became needed.)
  • Draw-pile order manipulation. The order of the draw pile is not stored or configurable, so cards like "rearrange the order of the top three cards of the draw pile" won't work on the Dvorak Engine. (You can work around it by keeping the cards in your hand, and handing them out whenever anyone draws a card.)
  • 164 card limit. The Dvorak Engine will crash if it tries to shuffle a deck with more than 164 cards in it - please do not load or create any decks that exceed this limit. (If you want to play with the Infinite Dvorak Deck, just give it a subset of the whole deck.)

Troubleshooting

If you're getting a "Huh? (Type "help" for help.)" message when you enter standard Dvorak Engine commands, then you're either standing in the wrong room, or the Engine has crashed. Type "look" to make sure that you're in the room with the Dvorak Engine - if you are, then you can tell the MUSH admin that it's crashed, and we'll get it fired back up when we can.

Source code

The MUSH source for the Dvorak Engine is available, if anyone wants to create better or spinoff versions of it.

See Also

  • Dvorax, an enhanced engine found in DvorakMUSH by using "@tel #46".