(calculating damage)
i left off with damage calculations. i gave it some thought at work, how do other systems do it? i know d&d is much more complicated than it should be for this system. i looked at some simpler systems instead.
magic: the gathering is pretty simple, you have a monster that has dam/hp and if you have a monster attack that has a higher dam than the defending monster has hp, it dies. i had thought about what armor would do to the situation, and i remember that you just have artifacts that add damage or hp. when you factor in magic attacks from dragon warrior, a problem arises - magic attacks negate armor ratings. so if i had a monster with 10/40 and an armor artifact that gave +0/+20, the monster would have 10/60 total; a magic spell that wouldn't be affected by armor (like a lightning bolt) that had 40/0 should kill the monster. how would you easily determine how to handle the situation?
instead, i thought of a simpler solution. sticking with the ATK/DEF of the original dragon warrior, and taking it as simple as i could, if you landed a blow on a monster, you should simply subtract the monster's DEF from the player's ATK and come to a resulting damage value. oddly enough though, the damage i'm doing to slimes and red slimes don't line up as obviously as i thought. i have an ATK of 14 and i can only assume they have a DEF of 0, yet i'm only doing 4 - 6 damage.. time for some hardcore number crunching.
(crunching dwi+ii(gbc)-i numbers)
i'm loading up my lv19 warrior and stripping him down. without anything equipped, i have ATK: 93. lets tabulate some numbers.
(for ATK: 93)
Slime
-----
min dmg: 40/93=43%
max dmg: 51/93=55%
(critical hits)
dmg: 79/93=85% (only got one case)
RedSlime
--------
min dmg: 43/93=46%
max dmg: 51/93=55%
i'm not getting much out of this. looks like its 40-60% and 80%+ for critical, but i need bigger numbers. let's up the ATK to 133.
(for ATK: 133)
Slime
-----
min: 57/133=43%
max: 70/133=53%
RedSlime
--------
min: 59/133=44%
max: 72/133=54%
jeez. i wasn't getting any criticals at all in that set. its ok, i have enough numbers for this. i'm going to assume that damage is 40%-60% of ATK, and criticals do 80%-100% of ATK. i'll compute the damage dealt with player.ATK - monster.DEF and if the damage is less than 1, then 0 damage is dealt and a "can't hurt" sound should play to indicate the weakness.
(dealing with magic)
now, the magic damage bypasses the DEF altogether, and is directly dealt. HURT (Firebal) and HURTMORE (Firebane) do the same damage range to everything, no matter what level you're at. that keeps things simpler, but i'm probably going to want to have a magic power level integrated too, so that magic does better at higher levels. HEAL and HEALMORE are the same in both respects. the chance of Sleep, StopSpell and Repel working are going to have to be looked at when we get there.
(monster clipping)
something important i have to mention about clipping is that i really feel taht monsters must never clip into each other very far, and the same goes for the hero against them too. full sprite overlap is absolutely under no circumstances acceptable. however, zelda:la(gmb) let that happen, and it was sorta ok to do that, because you were able to strike more than one monster in an attack. it seems unfair to the monsters (um.. ok???) that you can hit them all with one shot - but it might be best to just do it that way to keep it as simple as possible.
(knockback)
on another note, when your sword strikes a monster - should it knock the monster away from you, so you can have your personal space? again zelda:la(gmb) did this, and it worked out pretty well. hitting bosses didn't knock them back unless it was part of the ai - i think of the bomb-throwing cyclops in this situation. that means they're going to need a stun/slide state that will last a fraction of a second. perhaps criticals will send them twice as far, like the Peice of Power did.
(shoulder button quick-select)
having the (L) and (R) buttons scroll through a list of things is something i really desperately want to add functionality for - perhaps i can cludge a simple system together for it. suppose every time you hit (L), the thing selected by (B) would move to the next valid item/magic in inventory. it would skip over like the armor and other things that you couldn't put on the buttons. it would also go through the spell list before wrapping around again to the first item in inventory.
(triggering events)
aside from map specifics and monster ai, i'm getting close to being able to draft up a spec doc. hmm. i need an event system. what different types of things trigger events? facing and being close enough to a person, and pressing (A), will trigger them. facing and being close enough to certain parts of the maps, like treasure chests, and pressing (A) will trigger them. killing certain monsters (bosses) will trigger them. just walking on a certain area in a map should trigger them. i'll have to define all of the events and how they're triggered. i should be able to find similarities between them all.
it occurs to me that that would probably be the best way to go about the spec - describe each experience the player will have in technical terms, in the order most likely to happen. we can, as we go through, mention what situations might break the experience, and how they will be dealt with. hmm. well, that doesn't really do it quite right. as soon as a new item is introduced, the inventory screen needs to be brought up again... perhaps that won't do.
i suppose the interface should be looked at first. there are going to be three subscreens, the stats screen, the inventory screen, and the spell screen. the other side of the interface will be the action interface, and that will be the most complex of all.
(subscreens interface)
pressing (start) will bring up the last accessed of the subscreens. once into the subscreens, pressing (L) and (R) will switch between them, wrapping around in both directions. <-[inventory][spells][stats]-> in the upper left and right, it will display which subscreen will be selected with the according shoulder button.
the inventory screen in the dwi+ii(gbc)-i only holds 10 items, including weapons and armor. i think that an array of 3x3 or 4x3 would be fair for the items. when an item is selected, a popup window will tell what the item is called, and it will display whatever numbers are associated with the item. herbs will tell the heal range, weapons and armor will show the current attack power and what it will become if you equip it, etc. i'm going to have to go over the entire item list and document it all.
if you press (A) or (B) on an item, it will be assigned to that button. a button symbol will appear over the item (and if the equipped items are shown like in zelda:la, then the item will be shown in the button area there too). if the item is armor, instead, it is equipped and an E is put over the armor (or taken away if it was already equipped, unequipping it). the same is true for the cursed necklace and belt, the war ring, and dragon scale. i wonder if that would be the best way to deal with the torches too? we need to show the amount of time left on the torch too - another thing to have to remember.
the magic screen will hold all 10 spells, and will work just like the inventory screen. every spell should have a symbol associated with it - perhaps on a book? each spell's info should tell spell duration or damage range.
the stats screen will show the current values for strength, hp, mp, attack, and defense. should also show the damage range for the weapon currently equipped (or both, if two weapons equipped - whatever you'd do that for.. still, have to account for it). you should also see your level, and experience/next - don't force the player to have to go to the king for that shit. current gold would show here, but i really would rather have that out in the open all the time. its a big thing to keep an eye on nearly all the time, you have to save up quite often for better weapons and armor. i think it might actually be a third of the game. ^_^
(system menu)
before we get to the main gameplay, i also want to go over the system menu. pressing (select) should bring up a menu that would allow you to save (and exit to title screen) and whatnot. saving anywhere and everywhere is necessary and will need to happen. i'd like to have a bestiary like final fantasy: dawn of souls (gba), and dragon warrior III (gbc). when you defeat a monster its info shows up in the bestiary, and you can check it out from there. the only other thing i can think of is an options choice - but i can't think of what options i'd want to have right now. let's assume its there for now, so we can put options in there if we need to later.
it seems like the only thing left is the main gameplay - but this is the biggest chunk to do. next entry will start working at this.