summaryrefslogtreecommitdiff
path: root/README.md
blob: 700286b8f77af26264e17da04b155a5b835de112 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# dmn

Command line interface and library for DMs and other players of Advanced
Dungeons & Dragons (AD&D).

**This project is BRAND NEW and TOTALLY INCOMPLETE.** I am completely new to
Rust and this is quite light on tests. I use it for my game, but there is a lot
of room for improvement. You have been warned.

This tool is for **original, by the book AD&D**, though it might be useful
for other versions of D&D. For more information about the kind of AD&D
dmn is meant for, see https://demonidol.com.

## Installation

```
cargo install dmn
```

If you don't know what cargo is, just [email me](mailto:eapoems@riseup.net) for
now and I'll send you the program. I'll make the program more-easily available
soon.

## Usage

dmn is really light on features right now, but it can do some useful things
that can save you quite a lot of time during prep or even at the table. I hope
to make these more useful as time goes on.

Show help:

```shell
dmn help
```

Roll some dice (only supports XdY and dY format so far):

```shell
dmn roll 4d6
```

Generate a random magic item (includes 10% chance for a map, and uses *[Heroic
Legendarium](https://preview.drivethrurpg.com/en/product/357539/The-Heroic-Legendarium-A-First-Edition-Adventure-Gaming-Companion)*
chances for katanas and such):

```shell
dmn random magic
```

Generate a random henchman (does not yet properly limit classes or races by
ability scores, nor classes by race or alignment):

```shell
dmn random henchman
```

Get the henchman in CSV format so you can copy and paste right into a
spreadsheet:

```shell
dmn random henchman --csv
```

Generate 30 henchmen in CSV format (`repeat` only works in zsh; for bash or
whatever you'll need to use a `for` loop or something):

```shell
repeat 30 { dmn random henchman --csv }
```

Roll on a specific table (available tables can be seen by looking in the files
in `src/data/random_tables`):

```shell
dmn table hl_non_magic
```

## Hacking

This is my first Rust project. I haven't even finished reading the Rust book
yet. Advice, criticism, and patches are more than welcome.

The project repo is found at https://git.aikuro.net/poems/dmn. You can send
[pull requests](https://git-scm.com/docs/git-request-pull) via email to
[eapoems@riseup.net](mailto:eapoems@riseup.net). I will set you as the author of the commit unless
you prefer anonymity.

## License

dmn, a CLI and library for DMs and other players of AD&D

Copyright (C) 2023 David Gay

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, version 3 of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program (the `LICENSE` file). If not, see
<https://www.gnu.org/licenses/>.

## Unowned copyrights and trademarks

The author(s) of dmn acknowledge all copyrights, trademarks, and registered
trademarks detailed in dmn that do not belong to the author(s) of dmn and make
no challenges to the ownership of said property rights.