Skip to content

Commit a4c78c8

Browse files
committed
0.1.0
0 parents  commit a4c78c8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+7283
-0
lines changed

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
acolyte
2+
acolyte-dev
3+
.idea/
4+
*.iml
5+
*.dSYM
6+
.deps/
7+
.DS_Store

LICENSE

+674
Large diffs are not rendered by default.

README.md

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# Acolyte
2+
3+
A procedurally generated RPG inspired by Rogue and written in Pony.
4+
5+
This is a work in progress but you can currently play complete games.
6+
Because everything is procedurally generated, it's a different game
7+
every time.
8+
9+
* [Acolyte Instructions](#acolyte-instructions)
10+
* [Installation](#installation)
11+
* [Running](#running)
12+
13+
![Acolyte](/images/screenshot.png?raw=true "Acolyte")
14+
15+
## Acolyte Instructions
16+
17+
Acolyte is played from the terminal.
18+
19+
The object of the game is to find the Staff of Eternity.
20+
21+
### Commands
22+
23+
```
24+
NORMAL MODE (moving around map):
25+
<arrows> - movement / attack (collide with enemy)
26+
h - (h)elp
27+
. - wait (turn passes without action)
28+
i - enter INVENTORY MODE
29+
l - enter LOOK MODE (inspect tiles from a distance)
30+
v - enter VIEW MODE (jump around map)
31+
t - (t)ake item on tile
32+
> - descend stairs
33+
< - ascend stairs
34+
<enter> - inspect tile you're on (and see item type)
35+
q - quit
36+
37+
LOOK MODE (inspect objects around map):
38+
<arrows> - move look cursor
39+
enter - look at highlighted tile
40+
l - return to NORMAL MODE
41+
<esc> - return to NORMAL MODE
42+
43+
VIEW MODE (rapidly look around map):
44+
<arrows> - jump view by partial screen
45+
v - return to NORMAL MODE
46+
<esc> - return to NORMAL MODE
47+
48+
INVENTORY MODE:
49+
<arrows> - move through items
50+
enter - equip weapon or armor / drink potion / use misc item
51+
l - (l)ook at item
52+
d - (d)rop item
53+
i - return to NORMAL MODE
54+
<esc> - return to NORMAL MODE
55+
```
56+
57+
### Objects
58+
59+
```
60+
@ - the acolyte
61+
[a-z,A-Z] - beings of all kinds
62+
# - wall
63+
% - weapon or armor
64+
! - potion
65+
$ - cold, hard cash
66+
> - descending stairs
67+
< - ascending stairs
68+
? - who knows!
69+
```
70+
71+
## Installation
72+
73+
Currently, Acolyte is only supported on OSX.
74+
75+
### Building on Mac OS X
76+
77+
#### Building ponyc
78+
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.
79+
80+
##### Get Dependencies via Homebrew
81+
Installation via [homebrew](http://brew.sh):
82+
```
83+
$ brew update
84+
$ brew install homebrew/versions/llvm38 pcre2 libressl
85+
```
86+
87+
##### Get Dependencies via MacPorts
88+
Installation via [MacPorts](https://www.macports.org):
89+
```
90+
$ sudo port install llvm-3.8 pcre2 libressl
91+
$ sudo port select --set llvm mp-llvm-3.8
92+
```
93+
94+
##### Install compiler
95+
Clone the ponyc repo and install the compiler (Acolyte is tested with ponyc
96+
v0.11.1):
97+
```
98+
git clone https://github.com/ponylang/ponyc
99+
cd ponyc
100+
git checkout 0.11.1
101+
make config=release install
102+
```
103+
104+
#### Building Acolyte
105+
```
106+
git clone https://github.com/jtfmumm/acolyte
107+
cd acolyte
108+
ponyc
109+
chmod +x acolyte
110+
```
111+
112+
## Running
113+
Your terminal must have dimensions of at least 99x31 to run the game properly.
114+
115+
Assuming you've set execute permissions (e.g. via `chmod +x acolyte`), you can run the game with the following command:
116+
```
117+
./acolyte
118+
```
119+
120+
121+

acolyte.pony

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
use "options"
2+
use "time"
3+
use "src/game"
4+
use "src/input"
5+
6+
actor Main
7+
new create(env: Env) =>
8+
let options = Options(env.args)
9+
let seed = Time.micros()
10+
var noscreen = false
11+
var is_overworld = false
12+
var see_input = false
13+
var is_simple_dungeon = false
14+
var enable_fast = false
15+
16+
options
17+
.add("overworld", "o", None)
18+
.add("simple-dungeon", "s", None)
19+
.add("seekeys", "k", None)
20+
.add("noscreen", "n", None)
21+
.add("enable-fast", "f", None)
22+
23+
for option in options do
24+
match option
25+
| ("noscreen", None) =>
26+
noscreen = true
27+
| ("overworld", None) =>
28+
is_overworld = true
29+
| ("simple-dungeon", None) =>
30+
is_simple_dungeon = true
31+
| ("seekeys", None) =>
32+
see_input = true
33+
| ("enable-fast", None) =>
34+
enable_fast = true
35+
end
36+
end
37+
38+
Game(env, seed where noscreen = noscreen,
39+
is_overworld = is_overworld, is_simple_dungeon = is_simple_dungeon,
40+
see_input = see_input, enable_fast = enable_fast)

images/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

images/screenshot.png

55 KB
Loading

src/agents/act.pony

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class EmptyAct
2+
fun apply() => None

0 commit comments

Comments
 (0)