swarm/.gitignore
Karl Ostmo b80503f16e
Boolean expressions of objective prerequisites (#927)
Closes #795

![image](https://user-images.githubusercontent.com/261693/210162423-4dadf9d8-8e32-437f-b854-b7106dd4bbe8.png)

![Screenshot from 2022-12-31 22-58-59](https://user-images.githubusercontent.com/261693/210163446-e53c4abd-7bc1-4271-8a7c-cf0165f9ced8.png)
![image](https://user-images.githubusercontent.com/261693/210162466-3d3ae29e-9b35-44e6-93bc-df1efe59d7e9.png)

## Tasks
- [x] Vendor a subset of the `boolexpr` package
- [x] New display logic for parallel goals
- [x] Add a check for whether winning is impossible (due to a "not" prerequisite being achieved)
- [x] Add a "Lose" dialog analogous to the "Win" dialog
- [x] Validate no dependency cycles in prerequisites specs
- [x] Add tests for negative validation result from scenario parsing
- [x] Web API to inspect status of incomplete, completed, optional, and prerequisite objectives
- [x] Update all of the multi-goal scenarios to use prerequisites

## For follow-up PRs:
- [ ] Upload new GHC8-compatible version of `boolexpr` to Hackage (perhaps [take over the package](https://wiki.haskell.org/Taking_over_a_package)?)
- [ ] Add prerequisites and its logical operators to JSON schema
- [ ] Reverse topological sort of goals before evaluation, with a test that demonstrates necessity
- [ ] Automatically skip over the header rows when navigating the Goals list
- [ ] Add indicators for optional and hidden goals
- [ ] New Challenge for strategizing optional and mutually-exclusive goals
2023-01-25 04:07:00 +00:00

24 lines
194 B
Plaintext

*~
dist-newstyle/
TAGS
.vscode/
cabal.project.local
hie.yaml
.stack-work/
.stack-work-test/
stack.yaml.lock
.hie/
stan.html
.swarm_history
*.orig
*.aux
*.log
docs/ott/*.tex
.dir-locals.el