esote / opal Goto Github PK
View Code? Open in Web Editor NEWOPAL is a rogue-like dungeon crawler.
License: GNU Affero General Public License v3.0
OPAL is a rogue-like dungeon crawler.
License: GNU Affero General Public License v3.0
NAME opal - a rogue-like dungeon crawler SYNOPSIS opal [-ls] [-n count] [-o count] [-z seed] DESCRIPTION opal is a rogue-like dungeon crawler. You are the playable character, denoted by the symbol @. The goal is to kill the boss NPC. As a player you can pick up objects from the floor and wear them to increase your attributes. Damage is calculated as the sum of dice rolls for the player's base damage and all equipped items. Options available: -l load dungeon -s save dungeon -n custom count of NPCs per floor -o custom count of objects per floor -z a string or integer to initialize the RNG subsystem opal expects NPC and object description files. Examples should have been included with your copy. OPAL is a recursive acronym for "OPAL's Playable Almost Indefectibly." COMMANDS 7, y, home move up and to the left 8, k, arrow up move up 9, u, page up move up and to the right 6, l, arrow right move right 3, n, page down move down and to the right 2, j, arrow down move down 1, b, end move down and to the left 4, h, arrow left move left 5, ., space rest (consumes a turn) > go down stairs < go up stairs m view scrollable NPC list Q or q quit i carry (inventory) list e equipment list w prompt to wear an object t prompt to take off an object d prompt to drop an object from carry list x prompt to destroy an object from carry list L inspect an NPC I inspect an object from carry list f defog (DEBUG only) g teleport (DEBUG only) DESCRIPTIONS GRAMMAR The NPC and object descriptions file are used to generate NPCs and objects during the game. They follow a custom grammar. Dice are formatted with integers as base+dicedsides. For example 3+5d4. NPCs The file must start with "OPAL NPC DESCRIPTION 1". An NPC description starts with "BEGIN NPC" and ends with "END". It has the following attributes: ABIL an NPC's characteristics, one or more of BOSS, DESTROY, ERRATIC, PASS, PICKUP, SMART, TELE, TUNNEL, or UNIQ. COLOR one of BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, WHITE, or YELLOW. DAM dice format DESC multi-line NPC description, ending in '.' on its own line. HP dice format NAME string name RRTY rarity, from 1 to 100 with 100 being the rarest SPEED dice format SYMB any single character Objects The file must start with "OPAL OBJ DESCRIPTION 1". An object description starts with "BEGIN OBJ" and ends with "END". It has the following attributes: ART boolean, whether the object is a unique artifact ATTR dice format COLOR one of BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, WHITE, or YELLOW. DAM dice format DEF dice format DESC multi-line object description, ending in '.' on its own line. DODGE dice format HIT dice format NAME string name RRTY rarity, from 1 to 100 with 100 being the rarest SPEED dice format TYPE object type, one of AMMUNITION, AMULET, ARMOR, BOOK, BOOTS, CLOAK, CONTAINER, FLASK, FOOD, GLOVES GOLD, HELMET, LIGHT, OFFHAND, RANGED, RING, SCROLL, WAND, or WEAPON. VAL dice format WEIGHT dice format NOTES opal requires ncurses. To compile it also requires yacc(1) and lex(1) which are used for descriptions parsing. FILES $HOME/.opal/dungeon Binary save file $HOME/.opal/npc_desc Required NPC descriptions file $HOME/.opal/obj_desc Required object descriptions file HISTORY My coms327 repository contains the previous development history of opal. AUTHORS opal was written by Esote. COPYRIGHT Copyright (c) 2019 Esote. There is NO warranty. You may redistribute this software under the terms of the GNU Affero General Public License. For more information, see the LICENSE file. BUGS The game window should not be resized during play. This may corrupt the display. Fatal errors do not bother to reset the terminal.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.