Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2b7f4fc
Update number of accounts
EricFecteau Mar 13, 2025
e4c9f86
cargo update
EricFecteau Mar 13, 2025
56443dd
add test data
EricFecteau Mar 13, 2025
093e908
Changed abs coords to relative (to player) coords
EricFecteau Mar 15, 2025
517f05a
Fix bugs
EricFecteau Mar 15, 2025
366d290
Feature test
EricFecteau Apr 5, 2025
3b4be76
Updated rust
EricFecteau Apr 12, 2025
9cdd6f8
Document Monster
EricFecteau Apr 13, 2025
857d5a9
Document and prelim-test monsters
EricFecteau Apr 18, 2025
5a9b11c
Add tests
EricFecteau Apr 20, 2025
afa8dcc
Cargo update
EricFecteau Jun 20, 2025
69c97da
Examine monster added
EricFecteau Jun 20, 2025
9a48b9c
Boxing errors
EricFecteau Jun 20, 2025
7302cbf
Update version
EricFecteau Jun 20, 2025
87f7946
Clippy
EricFecteau Jun 20, 2025
2c6bcd6
Update scenario
EricFecteau Jun 20, 2025
f025d5a
Update data
EricFecteau Jun 20, 2025
45d1d79
Update data
EricFecteau Jun 20, 2025
f8e824f
Cargo update
EricFecteau Jul 15, 2025
1986f0d
cargo clippy update
EricFecteau Aug 23, 2025
2f25ffe
Clippy
EricFecteau Aug 23, 2025
636bad2
Test and docs for monsters
EricFecteau Aug 24, 2025
e3857fb
Add ranged and polearms work
EricFecteau Aug 30, 2025
5662fcc
Solve desync bug
EricFecteau Aug 30, 2025
418877e
Make abilities updatable
EricFecteau Aug 31, 2025
8717206
Fix desync
EricFecteau Aug 31, 2025
033fccc
Ignore friendly created chars
EricFecteau Aug 31, 2025
e10284d
Update
EricFecteau Sep 6, 2025
76c19e6
Update equipped data API for 0.32
EricFecteau Sep 7, 2025
95e5eb4
Update docs
EricFecteau Oct 12, 2025
73ca245
Move to published versions + update python
EricFecteau Oct 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
3.13
3.14
- name: Install libssl-dev
run: sudo apt-get install -y libssl-dev openssl pkg-config
- name: Build wheels
Expand Down Expand Up @@ -79,11 +79,11 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
3.13
3.14
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
Expand Down Expand Up @@ -111,11 +111,11 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
3.13
3.14
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
Expand Down Expand Up @@ -143,11 +143,11 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
3.13
3.14
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
Expand Down
40 changes: 35 additions & 5 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,13 @@ setup-dcss-server:
git -C ./crawl/dcss-0.32 checkout stone_soup-0.32
make -C ./crawl/dcss-0.32/crawl-ref/source WEBTILES=y

mkdir ./crawl/dcss-0.33
cp -r ./crawl/main/crawl/. ./crawl/dcss-0.33
git -C ./crawl/dcss-0.33 checkout stone_soup-0.33
make -C ./crawl/dcss-0.33/crawl-ref/source WEBTILES=y

mkdir ./crawl/server
cp -r ./crawl/dcss-0.32/crawl-ref/source/webserver/. ./crawl/server
cp -r ./crawl/dcss-0.33/crawl-ref/source/webserver/. ./crawl/server
sed -i -e 's/subprocess.signal/signal_module/g' ./crawl/server/webtiles/process_handler.py
sed -i -e 's/import subprocess/import signal as signal_module/g' ./crawl/server/webtiles/process_handler.py
cp ./crawl-config/config.py ./crawl/server/config.py
Expand All @@ -34,9 +39,26 @@ setup-dcss-server:
echo save_dir = ./crawl/server/saves-0.30 > ./crawl/server/init-0.30.txt
echo save_dir = ./crawl/server/saves-0.31 > ./crawl/server/init-0.31.txt
echo save_dir = ./crawl/server/saves-0.32 > ./crawl/server/init-0.32.txt
echo save_dir = ./crawl/server/saves-0.33 > ./crawl/server/init-0.33.txt

rm -rf ./crawl/main

update-dcss-server:
git -C ./crawl/dcss-0.29 pull
make -C ./crawl/dcss-0.29/crawl-ref/source WEBTILES=y

git -C ./crawl/dcss-0.30 pull
make -C ./crawl/dcss-0.30/crawl-ref/source WEBTILES=y

git -C ./crawl/dcss-0.31 pull
make -C ./crawl/dcss-0.31/crawl-ref/source WEBTILES=y

git -C ./crawl/dcss-0.32 pull
make -C ./crawl/dcss-0.32/crawl-ref/source WEBTILES=y

git -C ./crawl/dcss-0.33 pull
make -C ./crawl/dcss-0.33/crawl-ref/source WEBTILES=y

dcss-run:
python3 crawl/server/server.py

Expand All @@ -57,21 +79,28 @@ dcss-clear:

dcss-enable-logging:
sed -i -e 's/# type: (str, Any) -> bool/print("SENT FROM DCSS: ", msg, data)/g' ./crawl/server/webtiles/ws_handler.py
sed -i -e 's/# stdout data is only used for compatibility to wrapper/print("SENT FROM DCSS: ", msg)/g' ./crawl/server/webtiles/process_handler.py

dcss-disable-logging:
sed -i -e 's/print("SENT FROM DCSS: ", msg, data)/# type: (str, Any) -> bool/g' ./crawl/server/webtiles/ws_handler.py
sed -i -e 's/print("SENT FROM DCSS: ", msg)/# stdout data is only used for compatibility to wrapper/g' ./crawl/server/webtiles/process_handler.py

test-api:
cd ./dcss-api && GAME_ID=dcss-0.29 cargo test
cd ./dcss-api && GAME_ID=dcss-0.30 cargo test
cd ./dcss-api && GAME_ID=dcss-0.31 cargo test
cd ./dcss-api && GAME_ID=dcss-0.32 cargo test
cd ./dcss-api && GAME_ID=dcss-0.33 cargo test

test-data:
cd ./dcss-data && GAME_ID=dcss-0.33 cargo test

test-scenario:
cd ./dcss-scenario-builder && GAME_ID=dcss-0.29 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.30 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.31 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.32 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.33 cargo test

setup-python:
rm -rf ./dcss-api-python/pyo3
Expand All @@ -85,6 +114,7 @@ test-python:
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.30 pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.31 pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.32 pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.33 pytest ./dcss-api-python/tests

cargo-update:
cd ./dcss-api && cargo update
Expand All @@ -93,7 +123,7 @@ cargo-update:
cd ./dcss-data && cargo update

cargo-outdated:
cd ./dcss-api && cargo outdated
cd ./dcss-scenario-builder && cargo outdated
cd ./dcss-api-python && cargo outdated
cd ./dcss-data && cargo outdated
cd ./dcss-api && cargo outdated -d 1
cd ./dcss-scenario-builder && cargo outdated -d 1
cd ./dcss-api-python && cargo outdated -d 1
cd ./dcss-data && cargo outdated -d 1
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ This repo contains a series of libraries in Rust and Python to work with [Dungeo

### [dcss-api](https://github.com/EricFecteau/dcss-api/blob/main/dcss-api/) [![Crates.io Version](https://img.shields.io/crates/v/dcss-api)](https://crates.io/crates/dcss-api) [![docs.rs](https://img.shields.io/docsrs/dcss-api)](https://docs.rs/dcss-api/latest/dcss_api/)

`dcss-api` is an easy to use Rust wrapper for DCSS Webtile websocket API. It works with version `0.29`, `0.30`, `0.31` or `0.32` of DCSS.
`dcss-api` is an easy to use Rust wrapper for DCSS Webtile websocket API. It works with version `0.29`, `0.30`, `0.31`, `0.32` and `0.33` of DCSS.

### [dcss-scenario-builder](https://github.com/EricFecteau/dcss-api/blob/main/dcss-api/) [![Crates.io Version](https://img.shields.io/crates/v/dcss-scenario-builder)](https://crates.io/crates/dcss-scenario-builder) [![docs.rs](https://img.shields.io/docsrs/dcss-scenario-builder)](https://docs.rs/dcss-scenario-builder/latest/dcss_scenario_builder/)

`dcss-scenario-builder` is a crate to build scenarios in DCSS (wizmode) from a yaml file by providing features, items and monsters and mapping them on a tile map. This is great for testing other crates in this repository.
`dcss-scenario-builder` is a crate to build scenarios in DCSS (wizmode) from a yaml file by providing features, items and monsters and mapping them on a tile map. This is great for testing other crates in this repository. It works with version `0.29`, `0.30`, `0.31`, `0.32` and `0.33` of DCSS.

### [dcss-api-python](https://github.com/EricFecteau/dcss-api/tree/main/dcss-api-python) [![PyPI - Version](https://img.shields.io/pypi/v/dcss-api)](https://pypi.org/project/dcss-api/)

`dcss-api` is an easy to use Python wrapper for DCSS Webtile websocket API, that includes the `dcss-scenario-builder` functionalities. It works with version `0.29`, `0.30`, `0.31` or `0.32` of DCSS.
`dcss-api` is an easy to use Python wrapper for DCSS Webtile websocket API, that includes the `dcss-scenario-builder` functionalities. It works with version `0.29`, `0.30`, `0.31`, `0.32` and `0.33` of DCSS.

### [dcss-data](https://github.com/EricFecteau/dcss-api/tree/main/dcss-data) (experimental)

Expand Down
16 changes: 16 additions & 0 deletions crawl-config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,22 @@
allowed_with_hold = True,
options = ["-seed"],
)),
("dcss-0.33", dict(
version = "0.33",
name = "Play 0.33",
crawl_binary = "./crawl/dcss-0.33/crawl-ref/source/crawl",
rcfile_path = "./crawl/server/rcs-0.33/",
macro_path = "./crawl/server/rcs-0.33/",
morgue_path = "./crawl/server/rcs-0.33/%n",
inprogress_path = "./crawl/server/rcs-0.33/running",
ttyrec_path = "./crawl/server/rcs-0.33/ttyrecs/%n",
socket_path = "./crawl/server/rcs-0.33/",
client_path = "./crawl/dcss-0.33/crawl-ref/source/webserver/game_data/",
morgue_url = None,
show_save_info = True,
allowed_with_hold = True,
options = ["-seed"],
)),
])

dgl_status_file = "./crawl/server/status"
Expand Down
14 changes: 14 additions & 0 deletions crawl-config/init-player.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,17 @@ mkdir -p $TTYRECDIR
if [ ! -f ${RCDIR}/${PLAYERNAME}.rc ]; then
cp ${DEFAULT_RC} ${RCDIR}/${PLAYERNAME}.rc
fi

RCDIR=./crawl/server/rcs-0.33/
INPROGRESSDIR=./crawl/server/rcs-0.33/running
TTYRECDIR=./crawl/server/rcs-0.33/ttyrecs/$1
DEFAULT_RC=./crawl/server/init-0.33.txt
PLAYERNAME=$1

mkdir -p $RCDIR
mkdir -p $INPROGRESSDIR
mkdir -p $TTYRECDIR

if [ ! -f ${RCDIR}/${PLAYERNAME}.rc ]; then
cp ${DEFAULT_RC} ${RCDIR}/${PLAYERNAME}.rc
fi
Loading
Loading