refactor to enum
typing and many other fixes
fix tests
attempt to fix some typescript
more typescript fixes
more typescript test fixes
revert all API changes
update to pydcs
mypy fixes
Use properties to check if player is blue/red/neutral
update requirements.txt
black -_-
bump pydcs and fix mypy
add opponent property
bump pydcs
This makes it so that the mission planning effects are applied only if
the package can be fulfilled. For example, breakthrough will be used
only if all the BAI missions were fulfilled, not if they will *attempt*
to be fulfilled.
An HTN (https://en.wikipedia.org/wiki/Hierarchical_task_network) is
similar to a decision tree, but it is able to reset to an earlier stage
if a subtask fails and tasks are able to account for the changes in
world state caused by earlier tasks.
Currently this just uses exactly the same strategy as before so we can
prove the system, but it should make it simpler to improve on task
planning.