Story 77 task 7 - update xml files at runtime
Task: [S] Adjust race XML so that you can modify the number of boats in a race.
When clients connect they are added to the participant list, and an updated race.xml is sent out.
When they disconnect/timeout, they are unassigned a boat and updated race.xml is sent out.
Also contains code for sending updated boats.xml and regatta.xml.
See merge request !34
Story 61
[Agilefant link](http://agilefant.cosc.canterbury.ac.nz:8080/agilefant302/qrq.action?q=story:1095)
```
Note: the boat should be permanently circled with a highlight (or something similar)
See: (http://learn.canterbury.ac.nz/mod/forum/discuss.php?d=213948). Contains boat request to join, and server response messages.
Acceptance criteria:
- The boat that responds to control keypresses is permanently highlighted on screen.
- No boat without a highlight responds to keypresses.
```
Works with either single player or multiplayer game (see HostController.hostGamePressed()).
The race.xml currently is not updated when players join/quit, so there are 6 boats by default, and any boats without playes will just sail off the side of the map.
- resolves#39
- resolves#37
- resolves#35
- resolves#27
- resolves#25
- resolves#32
See merge request !26
- Figured out the different situations that can occur using accurate points of sail
- Mathed out the rotation angle for each situation
- Manual testing carried out by running simulations
- Manual testing carried out using pen and paper
#story[1098]
- Implemented drawSails method
- Sail position is displayed and updated using a boat's heading
- Sails conform to 'Points of sail'
- Javadoc'd new method and tidied up existing
- Sped up track point frequency (visualiserBoat class)
- Optimised imports (any other classes changed)
- A lot of canvas drawing and sail rotating issues were discovered and eventually overcome along the way. Using a sail image to draw and rotate on the existing canvas rather than a JavaFX shape on a new canvas was the final decision.
#story[1098]
- Created a GUI title screen
- Drew images to be display on the title
- Created controller for the title
- Changed visualiser main to initially display title
- Added functionality for host button
#story[1087]
- Removed some default templates (eg: created by X)
- Wrote JavaDoc for classes that had none
- Made JavaDoc more clear for classes
- Linked JavaDoc to other classes
- Minor spelling errors fixed
- BoatInRace and BoatInRaceTest commented out (to be removed)
#story[1003]
- Removed references to Constants class from other classes and tests
- ArrowController, Constants, Regatta removed
- Removed imports from various classes no longer used
#story[1003]
- arrow shows wind direction as from instead of to
- removed old unused displayArrow method
- renamed displayFancyArrow to displayWindArrow
- removed coordinates parameter not used
#story[882, 1003]
- set upper and lower bounds for axis height
- formatted Y axis to show/hide necessary info
- reduced some looped actions
- added conditions for the first leg
- all boats start in 'last' place
#story[876]
- sparkline is set with X number of lines
- sparkline height fits X lines
- lines are updated regularly
- size is adjusted relevant to plotted points
#story[876]