Skip to content

Commit

Permalink
0.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jtfmumm committed Mar 26, 2017
0 parents commit a4c78c8
Show file tree
Hide file tree
Showing 81 changed files with 7,283 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
acolyte
acolyte-dev
.idea/
*.iml
*.dSYM
.deps/
.DS_Store
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

121 changes: 121 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Acolyte

A procedurally generated RPG inspired by Rogue and written in Pony.

This is a work in progress but you can currently play complete games.
Because everything is procedurally generated, it's a different game
every time.

* [Acolyte Instructions](#acolyte-instructions)
* [Installation](#installation)
* [Running](#running)

![Acolyte](/images/screenshot.png?raw=true "Acolyte")

## Acolyte Instructions

Acolyte is played from the terminal.

The object of the game is to find the Staff of Eternity.

### Commands

```
NORMAL MODE (moving around map):
<arrows> - movement / attack (collide with enemy)
h - (h)elp
. - wait (turn passes without action)
i - enter INVENTORY MODE
l - enter LOOK MODE (inspect tiles from a distance)
v - enter VIEW MODE (jump around map)
t - (t)ake item on tile
> - descend stairs
< - ascend stairs
<enter> - inspect tile you're on (and see item type)
q - quit
LOOK MODE (inspect objects around map):
<arrows> - move look cursor
enter - look at highlighted tile
l - return to NORMAL MODE
<esc> - return to NORMAL MODE
VIEW MODE (rapidly look around map):
<arrows> - jump view by partial screen
v - return to NORMAL MODE
<esc> - return to NORMAL MODE
INVENTORY MODE:
<arrows> - move through items
enter - equip weapon or armor / drink potion / use misc item
l - (l)ook at item
d - (d)rop item
i - return to NORMAL MODE
<esc> - return to NORMAL MODE
```

### Objects

```
@ - the acolyte
[a-z,A-Z] - beings of all kinds
# - wall
% - weapon or armor
! - potion
$ - cold, hard cash
> - descending stairs
< - ascending stairs
? - who knows!
```

## Installation

Currently, Acolyte is only supported on OSX.

### Building on Mac OS X

#### Building ponyc
You'll need llvm 3.7.1 or 3.8.1 and the pcre2 library to build Pony. You can use either homebrew or MacPorts to install these dependencies.

##### Get Dependencies via Homebrew
Installation via [homebrew](http://brew.sh):
```
$ brew update
$ brew install homebrew/versions/llvm38 pcre2 libressl
```

##### Get Dependencies via MacPorts
Installation via [MacPorts](https://www.macports.org):
```
$ sudo port install llvm-3.8 pcre2 libressl
$ sudo port select --set llvm mp-llvm-3.8
```

##### Install compiler
Clone the ponyc repo and install the compiler (Acolyte is tested with ponyc
v0.11.1):
```
git clone https://github.com/ponylang/ponyc
cd ponyc
git checkout 0.11.1
make config=release install
```

#### Building Acolyte
```
git clone https://github.com/jtfmumm/acolyte
cd acolyte
ponyc
chmod +x acolyte
```

## Running
Your terminal must have dimensions of at least 99x31 to run the game properly.

Assuming you've set execute permissions (e.g. via `chmod +x acolyte`), you can run the game with the following command:
```
./acolyte
```



40 changes: 40 additions & 0 deletions acolyte.pony
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
use "options"
use "time"
use "src/game"
use "src/input"

actor Main
new create(env: Env) =>
let options = Options(env.args)
let seed = Time.micros()
var noscreen = false
var is_overworld = false
var see_input = false
var is_simple_dungeon = false
var enable_fast = false

options
.add("overworld", "o", None)
.add("simple-dungeon", "s", None)
.add("seekeys", "k", None)
.add("noscreen", "n", None)
.add("enable-fast", "f", None)

for option in options do
match option
| ("noscreen", None) =>
noscreen = true
| ("overworld", None) =>
is_overworld = true
| ("simple-dungeon", None) =>
is_simple_dungeon = true
| ("seekeys", None) =>
see_input = true
| ("enable-fast", None) =>
enable_fast = true
end
end

Game(env, seed where noscreen = noscreen,
is_overworld = is_overworld, is_simple_dungeon = is_simple_dungeon,
see_input = see_input, enable_fast = enable_fast)
1 change: 1 addition & 0 deletions images/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
Binary file added images/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/agents/act.pony
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class EmptyAct
fun apply() => None
Loading

0 comments on commit a4c78c8

Please sign in to comment.