Timeline

Our Contributions

Brittany
Brittany is continuing the ongoing and never-ending process of documentation for FH, described in Task #68.
 * Documentation**

Oh we know it needs it. Most of the documents have some sort of documentation, but the problem is that there's mixed documentation (meaning the style of documentation is scattered) and some classes have no documentation at all. As I have been going through the code, I've been having a slightly difficult time with some of the documentation because of the fact that I don't know what some of the code does. This is when I have to go through the code and try to figure out where methods are called and what they're supposed to do. It also helps to play the game and then look at the code to make connections. In order to make the documentation more uniform, each class is documented in the following styles:

###################################################################### # Class: ###################################################################### Each method in each class is documented as follows: We should add what different color blocks on the map indicate in the wiki documentation. (Red = current room, green = previously visited room, white = not yet visited room, red bars = locked doors)
 * 1)  There were a couple of classes already documented like this (these were the only classes with decent and uniform looking documentation) so I followed that template.
 * Fix Straggler Code** ** We may have accidentally submitted some commented out code in the git repos in MAFH2/BattleEngine.py, lines 323-325. We need to remove this, and tab-up the code following it, since python relies on that formatting. ** I would like to be able to clean up some of the rest of the code by removing commented out code. The problem here is that I don't know what code is indeed no longer in use or just commented out for the time being. If I can figure this out, then it will be an easy fix as I'm documenting the code.
 * Map Colors**

I plan to figure out a way to get a table of some sort onto the Fortune Hunter wiki that includes information on the map. If possible, I would like to figure out how to include a legend in the actual game explaining the map and how to read it.

**Special (Battle Menu Item) ** Why is special empty?
 * 'Special' refers to the special items in the inventory. The only special item that is in the code is a calculator, which none of us have come across in playing the game so far. Therefore, if you try to use special and don't have a calculator, nothing will happen. As far as whether there is a calculator or not or where to find it, we aren't sure.

Besides working on our wiki and the Fortune Hunter wiki, we are also planning to do the 22nd Annual Poster Scientific Research Poster Session. Although we are not really doing research, we are working on a project and there are results that can be shared. This would also be a great way to get the Sugar Labs/Math4 initiative's name out there. We will put more details/our abstract on here once we make a final decision on what we want to do.
 * Outreach**

Ryan
We can add special effects when enemies are attacked to indicate the attack itself (fire for "fire"), the damage inflected on them (scorched enemies?), and their final defeat (a pool of blood or pile of bones to indicate their new "absence"). Also, the dragons have a relatively high starting HP, so maybe they should at least be bigger?
 * Graphics**

Staci
Currently there is no real notification to the player that he/she has entered the next dungeon besides "You use the BIG KEY, and the door slams behind you!". At least in the first version of the game, the scenery changes for each dungeon, for example from ice to pyramids. Therefore, we have changed the text in version 2 to read "You use the BIG KEY to enter the next dungeon and the door slams behind you!". (The text "the door slams behind you" is stated so that the player knows he/she cannot go back.)
 * Enter next dungeon notification**

After defeating an enemy, there is no indication that you have won except for that the enemy disappears. Now, we have changed the code so that after the player defeats an enemy, the Navigator will read "You won!" and a message will appear at the bottom of the screen that reads "Enemy defeated!".
 * Small victory message after defeat of a single enemy**

When an enemy is encountered, in an attempt to defeat the enemy, the player has the option to attack the enemy or use magic spells. We thought it would be a cool idea to have some animated graphics appear when the player successfully casts a spell (ex; lightning strike when the player casts the lightning spell). I will work on finding the code to do this and Ryan will create the images.
 * Display magic spell animations**

//- Not Successful -// Currently upon the player's death, the message window indicates their return to the start of the current dungeon. There could also be a small visual box that appears to make the defeat and sudden move to the beginning of the dungeon more clear. A similar screen could be added upon defeating the enemies (described in [|Task #59]), and/or at the end of each dungeon to indicate that transition. A final victory screen could be added at the end of the game after successful completion (we cannot reach the end of the game because of the 'dungeon 3 stuck' bug/issue and because most of the gameplay beyond this point has not been implemented yet).
 * Victory/Defeat Screens (at the end of the battle/dungeon)**

I found the location for where the code checks to see if all enemies in the room are dead (line 407), then it calls the end_battle function (line 411). I tried loading the victory screen before this check, before the call to end_battle, after the call to end_battle, and in the end_battle function. None of which displayed the victory screen. I was able to display the victory screen after the defeat of each individual enemy, but that was not the goal - to display the victory screen after all enemies in the room are defeated.

**<span style="font-family: Arial,Helvetica,sans-serif;">Navigator text & formatting **
<span style="font-family: Arial,Helvetica,sans-serif; font-size: 13px; font-weight: normal; line-height: 19px;">The Navigator's indicator screen produces messages that run off the edge, and are still visible in the background after message is supposed to be cleared.
 * <span style="font-family: Arial,Helvetica,sans-serif;">A simple new line character will not work in this case, because the font/graphics are used with pygame, which doesn't account for [|line breaks]. These must be addressed in FH's code itself.
 * <span style="font-family: Arial,Helvetica,sans-serif;">I filed a [|minor bug] on the ticket tracker.
 * <span style="font-family: Arial,Helvetica,sans-serif;">A font size fix could stop some messages from rolling over, but then they may be too small. Indicator screen font size: MAFH2/BattleMenu.py, line 18. Buttons font size: MAFH2/BattleMenu.py, line 133.

//<span style="font-family: arial,helvetica,sans-serif; font-style: normal; font-weight: normal;">**<span style="font-family: Arial,Helvetica,sans-serif;">"Attack crits" message ** // //<span style="font-family: Arial,Helvetica,sans-serif; font-style: normal; font-weight: normal;">"Your attack crits for [INT] damage" can be found in line 317 of MAFH2/BattleEngine.py. This is meant to indicate critical damage, but crits is not real word, so this should be reworded. Also, we need to figure out how a critical attack is administered versus a basic attack. //
 * A random number between 0 and 100 is generated before an attack. If it is over 90 (line 74), then the number keypad is pulled up, and the player must answer a simple math problem. If they answer correctly, then the player administers a critical attack (damage is multiplied by a bonus) otherwise the player administers a basic attack.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 13px; font-weight: normal; line-height: 19px;">This is already listed as Bug #62, but upon finally reaching this level, we see it for ourselves and can now edit the room txt files and test the changes. Information on the dungeon coding can be found here.
 * <span style="font-family: Arial,Helvetica,sans-serif;">Dungeon 3 Stuck **
 * <span style="font-family: Arial,Helvetica,sans-serif;">This is not actually a bug. The 3rd dungeon is in MAFH2/assets/map/al3.txt, with the second line from the bottom having the appropriate code. The doors are not actually "locked" but have a "puzzle" flag, and since the puzzle for the doors is not yet implemented, they seem locked. The old code can be found in MAFH.activity/pippy_app.py with a startPuzzle method. A comment #TODO: START PUZZLE can be found in line 145 of MAFH2/Dungeon.py. This is actually a task to re-implement the puzzle doors. More information on the testing process can be found on Jaime's blog [|here].
 * <span style="font-family: Arial,Helvetica,sans-serif;">Modified the bug posting to a [|task], and changed its status to wontfix since it's not actually a bug.

**Heal** Selecting incorrect pieces for the puzzle still heals the player. A successful heal yields a "0" in the Navigator (screenshot needed). Heal also deals attack damage to the enemy.
 * The BattleEngine.py, starting at line 312, is edited to adjust self.player_input to either "Healed!" if successful or "Failed to heal" if not. This is displayed on the Navigator's indicator screen now when exiting the Heal puzzle, instead of '0' or the previous message.
 * Pretty sure this is intended. However, the maximum a player can heal is 40 healthpoints, which should be documented in the code.

The timer pops up and decrements like expected, both for multiplication input for critical attacks and for Magic puzzles. However, upon reaching an empty bar, nothing happens. The player can still finish the problem or puzzle successfully and gain all the points they would have otherwise. This is bad.
 * Battle Timer **
 * But now it's (somewhat) fixed! I added some code that accounts for when the timer runs out. I did not find the code that removes it from the screen and returns to the menu (which would be nice), but instead modified the code to only do certain things (like deal damage based on a completed puzzle) if done before the time limit. After the timer runs out (and hangs around on the screen), ANY action taken (puzzle piece selected or any key pressed on numerical input screen) will return to the menu with the message "Time's up!" in the Navigator. Seems like a pretty decent fix for now.

All Navigator messages are now correct as far as my rigorous testing could tell. No more random '0's popping up or previous display messages partially visible behind the Navigator screen. Incorrect numerical input yields "Incorrect" and correct input shows the attack damage message. Incorrect magic puzzles yield "Spell fizzles" and incorrect heal magic puzzles yield "Failed to heal" (as noted above). Correct ones show the appropriate message concerning which magic was used. All of these will only work if the player does the action within the battle timer time limit. Otherwise, "Time's up!" is displayed (also noted above).
 * Navigator Messages**

<span style="color: #008080; font-family: Verdana,Geneva,sans-serif;">Unassigned (Awaiting more research)
<span style="font-family: Arial,Helvetica,sans-serif; font-size: 13px; font-weight: normal; line-height: 19px;">Going from one dungeon to another or dying in battle and returning to the initial dungeon room yields INVALID FLAG in the terminal. (Is the "entrance" door the invalid one?)
 * <span style="font-family: Arial,Helvetica,sans-serif;">Invalid Flag Errors **


 * FH Playtesting -** In actuality, we are all doing this. We all play the game as we're working on the code/documentation. In doing so, we have been able to find other bugs and problems in the code as well as test the changes we make to it.