# comma-sword-daedalus

> Empty Epsilon - Maintainence, Repair and Operations extension

Latest version **2.0.0** (published 2019-09-18) · AGPL-3.0 license · 0 weekly downloads

## Install

```sh
npm install comma-sword-daedalus
pnpm add comma-sword-daedalus
yarn add comma-sword-daedalus
bun add comma-sword-daedalus
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2019-09-18 |
| First published | 2017-12-21 |
| Weekly downloads | 0 |
| License | AGPL-3.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 20 |
| Unpacked size | 1.2 MB |
| Known vulnerabilities | 0 (+31 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 4 |
| Author | Amir Arad |
| Maintainers | amir-arad |
| Keywords | empty epsilon, SBS, OSC |

## Links

- npm: https://www.npmjs.com/package/comma-sword-daedalus
- Repository: https://github.com/CommaSword/Daedalus
- Homepage: https://github.com/CommaSword/Daedalus#readme
- Issues: https://github.com/CommaSword/Daedalus/issues
- npm.io page: https://npm.io/package/comma-sword-daedalus

## Dependencies (20)

- [cli](https://npm.io/package/cli.md) ^1.0.1
- [osc](https://npm.io/package/osc.md) ^2.3.1
- [rxjs](https://npm.io/package/rxjs.md) ^6.5.3
- [axios](https://npm.io/package/axios.md) 0.19.0
- [kissfs](https://npm.io/package/kissfs.md) ^0.7.1
- [lodash](https://npm.io/package/lodash.md) 4.17.15
- [naming](https://npm.io/package/naming.md) ^1.0.6
- [resolve](https://npm.io/package/resolve.md) ^1.12.0
- [zeroconf](https://npm.io/package/zeroconf.md) 0.1.4
- [json-rpc2](https://npm.io/package/json-rpc2.md) 1.0.2
- [jsonschema](https://npm.io/package/jsonschema.md) ^1.2.4
- [rxjs-compat](https://npm.io/package/rxjs-compat.md) ^6.5.3
- [front-matter](https://npm.io/package/front-matter.md) ^3.0.2
- [open-epsilon](https://npm.io/package/open-epsilon.md) 1.0.0
- [eventemitter3](https://npm.io/package/eventemitter3.md) 4.0.0
- [string-template](https://npm.io/package/string-template.md) ^1.0.0
- [empty-epsilon-js](https://npm.io/package/empty-epsilon-js.md) 2.0.0
- [socket.io-client](https://npm.io/package/socket.io-client.md) 2.2.0
- [socketio-wildcard](https://npm.io/package/socketio-wildcard.md) 2.0.0
- [daedalus-fugazi-webclient](https://npm.io/package/daedalus-fugazi-webclient.md) 0.1.0

## Recent versions

- 2.0.0 (latest) — 2019-09-18
- 1.0.0 — 2017-12-21

## README

# Daedalus
Empty Epsilon extension.

This project extends the [Empty Epsilon](http://daid.github.io/EmptyEpsilon/) spaceship bridge simulator game,
by simulating the spaceship's need for [Maintenance, Repair and Operations](https://en.wikipedia.org/wiki/Maintenance,_repair_and_operations) during the game.

### how to build
We use [yarn](https://yarnpkg.com/en/) to manage this project's lifecycle. Install yarn by running `npm i -g yarn` and then follow the instructions in the [developer documentation](./resources/entries/daedalus-developer.md)
in addition, Copy the files in this project's `lua` directory into empty epsilon's `Contents/Resources/scripts` directory
 
### how to run
I use `npm run go -- -r C:\workspace\Daedalus\resources` to run. where `C:\workspace\Daedalus\resources`is a folder containing the `game-monitor.json` and  `ecr-state.json` (if exists) files

### what to expect
TL;DR : a mess

Daedalus hosts the latest iteration of software written to support a sci-fi LARP we've been working on for a long while now. Its first test-run is due very soon, so the current state of the project is a mess (documentation, test coverage and stability etc.) as we sprint towards the minimum viable product that is game-ready. After the test run, I plan to  separately productize the different features while adding features for the next run. there's a LOT to do in that area: some code can migrate to LUA scripts, configuration can be automated, concerns separated, etc. 

### the generic API
the big reusable thing here is that Daedalus exposes an [OSC](http://opensoundcontrol.org/osc) network API to the empty-epsilon server, both input and output. It's open-ended, so you can easily use standard [OSC endpoints](https://github.com/amir-arad/awesome-osc) to extend the game's UI. 

### the engineering changes
We replace the existing repair mechanic with a custom CLI screen (that also handles other LARP concerns) with one concurrent repair at a time, and introduced switchboards - engineering sub-systems that supply power to the Empty Epsilon systems (a.k.a bridge systems) in a many-to-many dependency matrix (each switchboard supplies power to more than one system and each system consumes power from more than one switchboard). when the engineer overpowers a bridge system, all switchboards supplying power to that system start accumulating load, and at some point (random and different for each switchboard) will become overloaded. 

Overloaded switches produce extra heat to all their supported system until reset. resetting a switchboard takes precious time, and during that time there are severe penalties to the bridge systems supported by the power switch (very low cap on power and repair speed) so it becomes a major tactical concern. 

In our LARP the switchboards are implemented by plastic electricity boards (based on arduino) located in various locations around the ship. however any OSC compatible network endpoint will do (we're using [open-stage-control](https://github.com/jean-emmanuel/open-stage-control) for the backoffice and the test client and it's great)

## product documentation
can be found in [the excalibur entries folder](./resources/entries)

## developer documentation
also found [here](./resources/entries/daedalus-developer.md)

---
_Source: https://npm.io/package/comma-sword-daedalus · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
