So I'm taking a programming course this year at college, and (as far as I know) the final project can be whatever I want. I was thinking of making some sort of tool you could use with Fire Emblem, that would calculate the outcome of battles, and possibly a few extras. However, first I want to get a general idea of the scope of this project (otherwise this would be in the Coding and Hacking forum). This tool will, initially, be built for Fire Emblem 7; although I'm sure the formula's for calculating attack speed, damage, etc., are common throughout the games, there are factors that change from game to game such as support conversation bonuses, class skills (which are almost entirely absent from FE7; one of the reasons I picked it over the others), and others I'm sure I haven't considered.
Which brings me to the reason behind this post. I want to brainstorm for ideas to put into this program. Right now, here's what I am thinking.
1) All of the FE7 characters will be pre-programmed into the system. However, there will be a way to input custom characters.
1a) Bosses, and other enemies (who do not undergo auto-level ups) may also be included.
2) Individual stats will need to be able to be modified, so you can change them as your characters level up.
2a)There may also be a RNG incorporated, so that level-ups can be generated in the program itself; really only useful for custom characters. This also means that stat growths need to be entered.
3) Hit %, Critical %, Damage Dealt, etc., all need to be calculated.
*3a.) The program will display the % chance of any given outcome for a battle. Now, for Assassin vs. Assassin, using Brave Swords, there would be a VAST amount of possible outcomes, so this is the tricky bit.
3b.) Speaking of Brave Swords, you should be able to select the weapons characters are using. Weapon Triangle bonuses will be automatically applied.
3c.) There will be a checkbox for misc. items that affect battle. For example, the Iron Rune.
3d.) Support Conversation bonuses should be automatically applied. They may also be dealt with with checkboxes.
*4) Portraits, obviously. For maximum aesthetics, they should have a frame like the status windows in the game, but you can change the picture and the name. However, failing that, all of the FE7 characters will have portraits programmed in, and the custom characters will use default class pictures.
5) Calculate average stats for characters at their level.
*These seem to be either too much work, or not entirely vital to functionality. Most likely to be omitted from the final product.
Those are all the possible forms of input/output I can think of. Feel free to suggest more, and I'll try to make it work. I'm using Visual Studio 2008 to code this, and I'm still kind of a nub so if it's beyond my skills I may omit it.
Now, as for the GUI. What do you think would work best? I was thinking, a drop-down menu to select characters (both attacker and defender, obviously). There would be a Save button, a Load button, and a Delete button; The save button would save modifications to the current character, the delete button deletes them, and the Load button would let you browse for a file where custom characters are saved (likely .txt). When a character is selected, it displays their stats, with Labels and Textboxes. There would be 3 textboxes for stats; Current, Increase, and Growth % (Obviously, growth % is omitted from Con, Move, and Aid). Clicking a button below this section would add the numbers in the Increase boxes to the numbers in the Current boxes. Clicking another button will simulate a level up; the stat gains will be placed in the Increase boxes, and then you press the previously mentioned button to confirm the level up. How should I handle support conversations? You need to be able to add/remove characters from the list of supports, edit their bonuses, and define their rank. Also need checkboxes for held items. And there should be a way to define whether the attack is ranged or not.
Does that cover everything? I'm not sure. The resources I've collected to far are just below, if I'm missing anything feel free to contribute.
Finally, when it's done, I'll post it up here for everybody to use, of course. After awhile, I'll also post up the code, and other people can modify it how they see fit (maybe even to incorporate other Fire Emblem games).
Current resources:
1 Attack speed:
2 Weapon Wt. > Con = Speed + (Con - Weapon Weight)
3 Weapon Wt. <= Con = Speed
4
5 Hit rate = 2* Skill + 0.5* Luck - Target avoid + weapon hit rate + Bonuses
6 (+5% from S rank in weapon level and 0-25% depending on supports & 1-7% for tactician's bonus)
7
8 Avoid = 2* attack speed + luck + bonuses (0-25% from supports, 0-40% from
9 different terrain, 1-7% for tactician's bonus and +10% if Set's Litany is in use)
10
11 Damage = Power + Effective Weapon Might - Target Effective Defence + Bonuses
12 ( 0-5 Def from supports & +10 if Fillia's Might is in use)
13
14 Effective weapon might = (Might + Weapon Triangle advantage)*2 if weapon is
15 effective against target
16
17 Effective defence = Def/Res + Bonuses (0-5 Def supports, 0-2 from terrain &
18 +10 if Nini's Grace is in use)
19
20 Rune Sword/Light Brand damage range 2 = Power/2 rounded up affecting resistance
21
22 Rune Sword/Light Brand damage range 1 = Power affecting resistance
23
24 Critical rate = Weapon critical + 0.5*skill - target critical evade + bonuses
25 (+5% if S in weapon, +15% for swordmasters/berserkers, 0-25% supports &
26 +10% if Thor's Ire is in use)
27
28 Critical evade = Luck + Bonuses (0-25% supports, 1-7 from tactician rank)
29
30 Staff accuracy = 30% + Power*5 + Skill - Enemy staff evade + bonuses (+5% from
31 S rank staff level, 0-25% supports)
32
33 Staff evasion = Res*5 + Distance from target*2 + bonuses (0-25% supports)
34
35 Effective weapons = double their normal might
36
37 Aid =
38 CON - 1 for unmounted units
39 20 - CON for mounted females
40 25 - CON for mounted males
41
42 Devil Axe
43 (31 - Luck)% = chance of self-injury
44
45 *Need complete weapon stats
46 *Need support convo bonuses
47 *List of items that affect battle
48 *Need portraits?