diff options
| author | skylar <me@casper> | 2026-11-11 15:24:37 -0800 |
|---|---|---|
| committer | skylar <me@casper> | 2026-11-11 15:24:37 -0800 |
| commit | 9ccf951473e21a8b90c25161156fa09a9b227a7b (patch) | |
| tree | e7bd9858a4cdbc5ae50069db8ca0cf868e436dec /src/dungeon/mod.rs | |
| parent | d36c54d996f3c14ae811312dbbe621e12a39edde (diff) | |
Orrery 0.1.0: the galaxy, flight, cities, inventory and saves
Grows the derelict crawler into the whole game, and gets it ready to
publish.
- A galaxy of star systems joined by lanes, split between four peoples'
territories, with a star map and a system map. Systems are modelled
with Kepler orbits, moons inside their Hill spheres, belts past the
frost line and stations at Lagrange points.
- Flight around one place at a time: arcade flight with a throttle
fallback where held keys can't be detected, mining rocks for ore,
landing, docking at stations, and boarding wrecks that come and go by
the calendar.
- Your ship to walk about, and capital cities to land at: generated
plans with walls, quarters and streets, building interiors, shops,
taverns, scholars and armourers.
- Fighting with a weapon and a gun ready, six damage types and how each
monster takes them, and armour that guards, wears and can be mended.
- Everything you own has a weight: a vim-keyed inventory, a pack and the
ship's lockers, and trade in ore, salvage, arms and fuel.
- Characters with a people and a ship of their own, saved as versioned
JSON on every scene change and on quit, with a character sheet, a
saves list and a pause menu wherever you are.
- `orrery weapons`, `armour`, `galaxy`, `system` and `town` print the
generators' output without the TUI.
- Release: README install steps for macOS and Linux, a Makefile whose
install also works with macOS's install, an MIT licence, and Cargo
metadata with rust-version 1.88.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'src/dungeon/mod.rs')
| -rw-r--r-- | src/dungeon/mod.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/dungeon/mod.rs b/src/dungeon/mod.rs index d3227a5..baeb0fe 100644 --- a/src/dungeon/mod.rs +++ b/src/dungeon/mod.rs @@ -1,11 +1,15 @@ //! Turn-based dungeons: the map, field of view, derelict-ship generation, //! and the rules of a crawl. Drawing lives in `scenes::derelict`. +pub mod armour; +pub mod arms; pub mod crawl; pub mod fov; pub mod ship; -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct Pos { pub x: i32, pub y: i32, @@ -111,6 +115,14 @@ impl Map { self.tiles[i] = tile; } + /// Which room `p` is in, to tell when you've gone into another. + pub fn room_index(&self, p: Pos) -> Option<u16> { + if !self.contains(p) { + return None; + } + self.room_of[self.index(p)] + } + pub fn room_at(&self, p: Pos) -> Option<&Room> { if !self.contains(p) { return None; |