Woo! It feels good to be back to the project! This is the first blog entry in over a month, and I am downright ashamed of the fact. However, given the intensity of my workload this session, it's no surprise that TLC once again had to take a backseat to more urgent matters.
Last night (actually, early this morning), I got back into the code and picked up where I left off on the Actions menu. It's not much, but it's more than I've given this project all month.
May I never take this much time away again!
- Officially began implementation of the Move command on the Actions menu.
- Created and handled the "Request Movement Points" network message.
- Server now correctly calculates and returns movement points for characters.
- Encountered a serious defect in the path-finding code I wrote last month. I'm currently in the process of troubleshooting it.
- Broadcast and handle the "whose turn" message..
- Create the "whose turn" display to show it.
- Implement the Move action. This will involve:
- Decoupling the characters from the map structure.
- Implementing network messages for the Move command.
- Implementing the UI for selecting a destination.
- Done: Implementing a pathfinding algorithm.
- Implementing path following behavior.
- Sometimes network errors will cause an AI to be disconnected immediately after it connects. This causes the lobby screen to wait indefinitely for a player who will never arrive. The server should detect this and try again to create the AI player.
- Solution: Refactor the engine's networking modules to use the Observer Pattern. This will also correct the "Known Issue" mentioned above with abandoned team data.
- Investigate ways to dynamically color the team uniforms. Experiment on the placeholders.
- If this works, add the ability to dynamically color MHFont objects too.
- Finish voice scripts for narration.
- Formalize the flowchart for the AI logic.
- I have a plan for optimizing the AI character initialization routine by consolidating some of the network messages. I've got to try that.
- Create the token factory and displays.
- Implement the Draw Token action.
- Implement the Heal action.
- Implement the Attack action.