My "project" if you will, is to create a program that will help the creators of RTDs organize and keep track of players' equipment, abilities, and health, and perhaps even generate a text file with the statuses already written (tags included). Now, if you're viciously opposed to the idea of RTDs, this is more of a pet project than something to be actually used. I'm just looking for a means to apply what little coding I know, since they say the only way to learn how to code is to code.
Now, the basic breakdown of the program. This program will contain four classes.
1. A game class. This would contain the main method, and would be able to either create a new game with a new amount of players, or could load a game, and allow the user to view and fiddle around with statuses. It should also give the base rolls for each player, and provide a 6 sided die for dodges and other such things. It also should have the ability to add players/npc's as needed. There needs to be a process by which to print out a text file containing all the statuses for all the players. Finally, it needs to be able to save a game in progress, which would, of course, save all the player objects in the game.
2. A player class. Objects of the player class will have four attributes: abilities, equipment, health, and temporary status. Each of these will probably be arrays (maybe linked lists) containing objects of the item/ability class. Also, this class needs to have a method which can return a player's individual status (formatted as a string), to be used by the game class. Of course, there needs to be a method to create new attributes as well as update existing ones.
3. An Item/ability class. This class is probably the simplest. It would have two attributes: a name, and a description. I'm not currently thinking about having the abilities influence the rolls in any way within the program, that will be left up to the user. It should be able to return strings in the following formats:
name:description
and
acronym=description]name[/acronym] //that first acronym tag would have an extra "[", naturally
The first would be use for the user's own benefit within the program. It would be needed when changing an ability/item's description, so the user could see what the current ability is before changing it. The second would be used in creating the actual statuses, so the every ability/item would have its description in an
acronym format. There should probably be a check to see if the item has a description, and if not, just return the name without the acronym tags.
4. The temporary class. This class would be a child of the item/ability class. It would have the additional variable "turns remaining" which would obviously be an integer. It should also have a means of decreasing the turns remaining, which would be called at the end of each "turn." When exactly this would be, I'm not sure, but that's a problem for the game class.