Apathy of Angels
UPDATE as of July 22, 2012:
So, I've been plugging away at this game slowly for a few years without much to show. The only thing keeping me going was that I genuinely enjoy what I'm doing. Nothing's really happened in the past few months except a few game plan changers. Some of you may know of Cherry's DYNRPG, well, it's awesome, but there aren't too many developers working with it. Which ends up being fine because the few patches that exist for it are pretty damn awesome. Particle effects, animated monsters, place text at any x,y, date and time... really neat stuff. I'm currently working with particles and animated monsters.
What's new? Nothing too much really, but here's an update anyway.
- I will be continuing to work with the DBS and have some ways of getting around default battle algorithms. Which leads me to...
- Combat skills! A new subset of skills which replaces the attack command. The basic idea is, instead of a normal attack, you're allotted combat skills with varying kinds of costs, anything from HP or MP, to reducing a characters DEF in order to use the combat skill. In this subsection will be custom algorithm making acquiring new weapons actually useful.
- Custom experience system is a go. Monsters give varying amounts of XP based on your level compared to theirs.
- Animated monsters! Yay, I've already got a few examples but my crappy laptop can't record video. One thing I can tell you is that, if all goes well, I want to create custom monsters with their own animations.
- One final system MAY be implemented. I'm working out the kinks but I think it'll add that last bit of variation that'll really improve gameplay. Basic concept, a class/job system that effects what techs and combat skills a character learns as well as point requirements for magic. If any of you remember, any character can learn any magic through a skill tree I already have set up. But as it is, requirements are the same for every character based on points you get in battle. The main idea is selecting a class/job for a character will reduce or raise point requirements for certain branches of the skill tree on top of affecting specific combat and tech skill.
Trailer (http://www.youtube.com/watch?v=lNnSJCAdSJM&feature=share)
(http://img.photobucket.com/albums/v244/drenrin2120/Aug162011-1.png)
Credit section not up to date.
CREDITS
Music
Me, drenrin2120, aka, Lance Matos
Samson, Elliot, Aerial, Martha, and Hector sprites
[drenrin2120
Jake sprite
InsaneJP
Seren sprite
xJericho
Parry Battle Animations
InsaneJP
Timber Facesets
Emilejon
Rool Facesets
Lucas irineu
Chipsets
Mac and blue
Various SNES game rips
Other character sprites and graphics
Unknown =/
Patches
[indent]Hyper Patcher 2, NoAuto Battle, Pics in Battle, RPGMaker Ultimate 2009, Auto Entry[/indent]
by Cherry
Special Thanks
Every single members at charas-forum.net
Yeah, if I used a parallel process event o constantly update 28 pictures, I think it's safe to assume I'd have some serious lag. Manually calling event and having separate from the event allows me to edit that event without having to do a lot of copy paste. The only problem I can see is when there are status problems such as poison, "regen" or mp draining status affects. I'll find a way around that though.
Also I've updated the Damage calculator to include a separate branch specifically for Magic attacks.
EDIT: I'll post the following update of the CBS Outline here at around 1 PM on February 25, 2010.
~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~CBS~~~
~~~~~~~~~specs~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 pixels = width of hero HUD
80 * 4 = 320 pixels (Width of rm2k3 screen)
13 pixels = Width across Adrenaline and Timer Bars.
16 Pixels = Event square size.
24 Pixels = Possible space that can be taken up by any given event (4 pixels bleeding into events on
the right, and 4 pixels bleeding into events on the left.)
~~~~~~Pictures~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HP/MP stats for Heros = 28
Damage Numbers = 4
Hero HUDs = 4 (this includes ALL POSSIBLE battle options)
Monster Pics = 6
Skills Name Display = 1
Status Display = 4
All Display Background= Events (Skill Display/Attack Option HUD)
Subset Skills = Included under Hero HUDs
Timer Bars = Events (Theoretically)
Adrenaline Bars = Events (Theoretically)
Skill : Analyze = Message windows over rides pictures
Notifications = Battle events (Notifications include: "Ready!" when a character's time bar is
full, "Max HP!" when a character's HP has been filled to the max, "Max MP!"
when a character's MP has been filled to the max, etc)
TOTAL = 47
~~~~~~Hero Battle Options~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tactic > > > >Opens> > > Attack (or Tech if in Adrenaline state)
Magic Defend
Items Escape
Run
_Tactic_
Options for Tactics include the following basic commands optional
for every hero in battle:
Attack - A normal attack dealing damage dependant on the user's equipped
weapon and their base Strength.
Defend - An option which allows the user to take half physical damage
from any attacking foe. This takes up a full turn and does not allow
an attack by the hero.
*Other options may become available that are dependant on the hero.
_Techs_
Option that replaces Tactics command when a character reaches full
Adrenaline. A list of Tech maneuvers that the hero knows will appear
under this option if selected. Techs can be used once at full adrenaline.
After use, adrenaline drops back to 0.
_Magic_
Allows a hero to use a magic skill provided they have enough MP to do so.
_Items_
Allows a hero to select and use an item.
_Run_
allows the entire party to attempt to run.
~~~~~~Status Hierarchy~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In battle, you can only be afflicted with one status affect.
If afflicted with a status affect which is considered "higher priority"
than another, the other status affect will dissipate and the higher
prioritized affect will take place. Here is the status hierarchy."<"
representing "Less than".
Normal < Sleep < Blind < Stun < Poison < Paralyze < Infected < Berserk
< Confused < Purge < Silence < Drunk < KO
Adrenaline Note: While in Adrenaline, no status other than KO can afflict
a player. However, if afflicted with Stun, Paralyze, Berserk, Confused,
or Drunk, the resulting player cannot gain Adrenaline points. If afflicted
with another status affect other than the ones listed previously, when
the character reaches the state of Adrenaline, their status will be
recovered to normal.
~~~~~~Status Affects~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Normal
Sleep
Blind
Stun
Poison
Paralyze
Infected
Berserk
Confused
Purge
Silence
Drunk
KO
The following are technically status affects, but operate outside of the status affect hierarchy.
They are called Special Affects. A player or monster can be affllicted with both a special affect and
a status affect.
Slow
Haste
Chronic
Cypher
-----Display-----
Special affects are not listed under the status affects. Instead, special affects cause monsters or
party members to glow different colors.
Slow Player or monster glows green
Haste Player or monster glows yellow
Chronic Player or monster glows red
Cypher Player or monster glows blue
The Special Effect hierarchy works like so.
Slow < Haste < Cypher < Chronic < KO
~~~~~~Time-Based System~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The proposed CBS would be time based. Depending on the hero's
speed stat, the hero would have to wait for the time bar to
fill up in order to attack. No monster or player shall attack
faster than every 5 seconds or slower than every 7.5 seconds unless
afflicted with Adrenaline or Haste, in which case Adrenaline would allow
the player to wait half the time, while Haste will allow the player to
wait 3/4 of the time.
Each hero's Agility will be pitted against the Enemy Party's average agility (which is attained
by averaging all the enemies Agility into one number) Suppose y equals the difference in percent,
x is equal to the enemy party's average Agility and z is equal to the hero's agility.
The equation would be as follows:
y=(z-x(100))/Z
EXAMPLE A1: Hero has more agility than enemy party's average agility.
If x=50 and z=60 then,
y = (60-50)(100)/60
y = 1000/60
y = 17 NOTE: rm2k3 rounds up and does not use decimals. This is why we multiply by 100.
17 is the percent difference.
EXAMPLE B: Hero has less agility than enemy party's average agility.
If x=60 and z=50 then,
y = (50-60)(100)/50
y = -1000/50
y = -20
PROOF OF CONCEPT
17% = .17
60(.17) = 10.2
10.2 + 50 = 60 NOTE: Given the rounding, the answer will not always be perfect.
In this case it was right on.
-20% = -.20
50(-.20) = -10
60-10 = 50
THE USAGE OF PERCENT DIFFERENCE
If both the hero Agility and the enemy party's agility average are the same, than both the hero
and the enemies would have to wait the same amount of seconds (provided the enemies had the same
agility). The amount of time one must wait can deviate upto 50 percent from the default wait time.
The default wait time is 5 seconds. That means, the fastest a player or enemy can attack is within
2.5 seconds and the slowest a player or enemy can attack is within 7.5 seconds.
First, y is divided by 2. This reduces the affect of the percent difference, which would otherwise
be massive even in small agility differences. If after this divsion process, y < -50, y is
automatically set to -50. If y > 50, y is automatically set to 50. Wait time can now be calculated.
EXAMPLE A2:
x = 50, z = 60, and y/2 = 9 (due to rm2k3 rounding up)
500-[(500*y)/100)]
(500*9)100
4500/100
500-45
=455
From this we can determine the hero would have to wait 4.5 seconds before being allowed to attack.
Again, since decimals are not allowed in rm2k3, we must find other methods. A looping event adds 10
to a variable every .1 seconds. This allows it to count up to 4.55, which would indicate that 4.55
seconds had passed by. We can also use this variable as a whole for the time bar to fill up by.
EXAMPLE B2
x = 60, z = 50, and y/2 = -10
500-[(500*-10)/100]
(500*-10)100
500+50
=550
From this we can determine the hero would have to wait 5.5 seconds before being allowed to attack.
The full equation would look like this, where y = [z-x(100)]/Z,
x is equal to the enemy party's average Agility and z is equal to the hero's agility.
500-[(500*{[z-x(100)]/Z})/100)] = the time to wait.
-----Timer Steps-----
1) y=(z-x(100))/Z
2a) If character is afflicted with Haste: t = 300
2b) If character is not afflicted with Haste or Slow: t = 500
2c) If character is afflicted with Slow: t =700
3) y/2=P
4) t-[(t*p)/100)]
~~~~~~Items~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The LIST PROBLEM
For items, magic and techs, there's a problem that presents itself when listing them in a custom
menu. Not every player will have all the items, magic or techs. This presents gaps in the list
where items, magic and techs the player doesn't have should be. To avoid this, a "variable Id slot"
system is implemented.
Each item is assigned a variable ID, 1 through infinity. These ID numbers represent slots in the item
selection screen. For example, if you have potionx5, tonicx1, golden phoenix cupx2, and Red Herbx17,
potion would be assigned ID slot 1, tonic ID slot 2, golden phoenix cup ID slot 3, and Red Herb ID
slot 4. They would appear in this order, one after the other. This avoids the "list problem".
They are assigned through a system of conditional branches checking to see what items, magic or
techs have been assigned an ID and which have not, starting with ID slot 1 being filled. This a
simple process of elimination. When an item, magic or tech is assigned an ID, a switch specific to
that item, magic or tech is flipped ON. This prevents the system from assigning an Item, magic, or
tech to more than one ID Slot.
At the end of the battle all variable ID slots are set to 0 and all item, magic or tech specific
switches are turned OFF. The system repeats itself before the beginning of each battle. If a player
finds a new item, tech or learns a new magic skill in between battles, the new item, magic, or tech
will be assigned an appropriate ID slot. This also assigns different ID slots to all following items,
magic, or techs that have not been assigned ID slots.
No switch is necessary to ascertain whether or not a player has acquired a certain Item, Tech, or
magic because there is an option under "conditional branches" called "Have Item" or "Have Skill"
(which can be used for both Magic and Techs."
ITEM AMOUNTS
Returning to the example of a player having the following items...
potionx5, tonicx1, golden phoenix cupx2, and Red Herbx17.
you will notice the number after the x, "x" referring to "times" where the name of the item is
referring to "1" of that item. Simply put, Potionx5 is the same as 1(potion) x 5 = five potions.
...I guess that didn't need to be explained. Moving on... Through a system of module events, the
number of Items had is reduced to two digits. The tens digit, and the ones digit. If the number of
items had is less than 10, the tens digit would equal 0. This digit is never displayed considering
the max numbers of items allowed is 99.
Take Red Herbx17 for example. The tens digit would be 1 and the ones digit would be 7. These digits
would be displayed next to each other as "17". This allows the use of only 10 digits pictures,
0 through 9. Instead of 99 individual pics 0 through 99. The downside is, each item requires 3
pictures to be displayed properly as opposed to 2.. The upside is, the amount of coding needed is
dramatically reduced. At this time, when displaying items, there are 7 number pictures not in use.
(The HP and MP pictures that would be displayed for the character trying to use an item, that are
now not visible due to the item screen being displayed over their stats.) As well as 1 status display
picture.
ALSO, damage pictures could be used THEORETICALLY. As no attacks will be allowed while a player is
selecting a magic, tech, or item to use. This means there are 15 total available pictures at my
disposal. All 15 may not be needed, however, and using the damage pictures might present problems.
5 rows availabe
5 pictures for item names
2 picture for amount, displayed in a seperate box above items.
Each Item in small size font takes 7 pixels in height a letter, including an empty pixel above the
letters and below the letters, and 6 pixels wide a letter, including an empty pixel space to the right.
The item menu screen is 35 pixels high and 74 pixels wide.
7 * 5 = 35
6 * 12 = 72
The maximum allowable number of items is 5, and the maximum letter length is 12.
The math works almost perfect. These same specifications can be applied to magic display. 12 letters
can fit across length-wise. 3 must be reserved for amount display. One is an empty space seperating
the name of the item from the amount and two for the amount. 9 letters remain for item names.
Golden Phoenix Cup should be changed to Gold Pedals in order to fit in the space allowed.
Other items will have to be changed as well. Magic and Techs have the same limitations since there is
an MP Cost, which is displayed in a seperate box above, but still takes up pixels.
SUGGESTED NAME CHANGES
NEW LETTER TOTAL
White Phoenix Cup to White Pedals 12
Golden Phoenix Cup to Gold Pedals 11
Company Tonic to Company Meds 12
Plaster Tonic to Health Vile 11
Milk Weed to Antidote 8
Fenailya Weed to Vaccine 7
Magic Mushroom to Magic Shroom 12
Cave City Brew to Cave Brew 9
Mountain Spring Ale to Mountain Ale 12
ITEMS ALLOWED IN BATTLE (The following is listed in the order they will be ID'd)
Berry
Herb
Red Herb
Tonic
Rich Tonic
Company Meds
Health Vile
Max X Tonic
Violet Herb
Maroon Herb
Elixer
Ether
Max X Ether
Angelixer
White Pedals
Gold Pedals
Antidote
Vaccine
Potion
Magic Potion
Magic Shroom
Cheap Brew
Cheap Rum
Pale Ale
Moonshine
Cave Brew
TOTAL = 26
~~~~~~Enemy Setup~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----Decision-----
Enemy decisions will be determined by a variety of different things. The most common will be by
random selection.
EXAMPLE:
Goo has an
80% chance to perform a normal attack
20% chance to just ooze all over the place and do nothing
Other decision making processes will be more concise. Conditional branches that will include,
how many members are in the hero pary, how many ally's are still alive, how much HP does the enemy
have left, how many time has the enemy used a certain attack, is the party resistant to a certain
type of magic, how much HP the hero party has left, what switches are turned, what variables equal
what... the options are there to create intuitive enemies that do more than attack and ooze all over
the place accomplishing nothing.
-----Stats-----
Stats will include
HP
MP
Attack
Defense
Intelligence
Agility
Experience
Loks (money)
Hit Percent
Equipment Slot 1
Equipment Slot 2
Held Items
Drop Items
Stats will be recorded eternally in a common event "enemy database". Before each battle this event
will be called. Battler IDs for enemy's 1...6 on the battlefield will be assigned Enemy ID numbers.
The enemy database will be organized starting with enemy 1 and going down until the last enemy.
EXAMPLE:
If Battler ID 1 is set to 45, whatever enemy has the ID 45 will have their stats "loaded" to other
variables that will be used specifically for battle under the Battler ID 1 set.
Say Enemy ID 45 is...
Skeleton
HP 250
MP 90
Attack 46
Defense 45
Intelligence 16
Agility 57
Experience 362
Loks 134
Hit Percent 90
Equipment Slot 1 Cuttlass +30 Attack
Equipment Slot 2
Held Item Bone Necklace
Drop Item Potion 5% Drop Chance
That makes 13 variables for Battler ID 1. That means all 6 Battler IDs will have 13 corresponding
variables. Since Items are already assigned IDs, no database is necessary for them.
Just looking here, we can determine that a character could steal a Cuttlass and a Bone Necklace from
the Enemy 'Skeleton'. There's also a 5 % chance a potion will be dropped at the end of the battle.
Beyond that, we see that the party will gain 362 Experience and 134 Loks (money) for defeating the
skeleton. These base statistics allow equations such as "Damage Calculations", "Escape Chance",
"Time", etc, to be executed correctly.
~~~~~~Queue Line~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Queue lines will be used to organized the party's and the foes' party's commands. Only
one monster or party member can execute a command at a time.
EVERY command, whether by a foe or party member, passes through the Queue Line. There are ten spots
in the queue line, ten variable "Queue IDs" for every possible character and monster that could be in
battle. Every time a command is executed, the Queue Line is updated. When a command is decided upon,
whether by monster or party member, they are given an appropriate Queue ID. A Queue ID is the number
in line the command is from being executed, 1 being the first in line, 10 being the last.
That makes TEN variables, "Queue ID 1, Queue ID 2...Queue ID 10", Character IDs and Monster IDs are
assigned to a Queue ID. When the line is updated, Character IDs and Monster IDs will move "up" in
the line.
EXAMPLE: If Samson has a normal attack command and is number 3 in line, when the line is updated,
his Queue ID will become 2.
There will be a pause in between commands being executed. During any time, the execution
of commands or the pause in between, a player may select a new command. The main idea is to select
commands before the foe can make a selection and take a position on the Queue Line ahead of you.
It's important to note that when any command is being executed, timers will NOT stop, and commands
will be continually added to the queue line.
~~~~~~~~Damage Calculator~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PHYSICAL ATTACK or AURA TECH MADE BY CHARACTERS or MONSTERS
Attack = Attacker's Attack
Defense = Defender's Defense
Attack Equipment = Monster only (total Attack boost of monster's equipment)
Defense Equipment = Monster only (total Defense boost of monster's equipment)
*NOTE: Tech damage is calculated as a physical attack, unless the tech is aura tech. If the
attack is an aura tech, then Attack = Attacker's Intelligence and Defense = Defender's Defense. Aura
techs have the advantage of hitting even transient monsters.
-----STEP 1-----
1A {([Attack+Lv]100)/150}*2 = Damage
-----STEP 2 Random Variance-----
(Attack Variance * Damage)/100
Attack Variance can be anything 1...200. A normal attack is always 95...105. Techs vary.
-----STEP 3 Defense Modification-----
If Ignore DEFENSE option is ON. This STEP is Skipped.
3A Damage - [Defense/2] = Defender's Defense Modifies Damage
If Damage < 0 after this calculation, Damage is set to randomly 0 or 1.
-----STEP 4 Target Defending-----
If target is in a defensive stance: Damage = Damage/2 Skip to STEP 7
-----STEP 5 Target Row-----
Option A: If target is in the back row: Damage = Damage/2 Skip to STEP 7
Option B: If the attacker is in the back row: Damage = Damage/2 Skip to STEP 7
-----STEP 6 Friendly Fire-----
If target is an ally or self: Damage = Damage/2
-----STEP 7 Class Modifier-----
If attack has a class attribute, the following steps are applied. If one of the following conditions
are met, the following conditions are not checked and the the process skips to STEP 8
1 If a resistance is apparent due to an item, magic, tech or natural resistance:
Damage = Damage - [Damage*resist percent/100] Skip to STEP 8
2 If a class attribute absorption is apparent due to an item, magic, tech or natural absorption:
HP Recover = [Damage*absorption percent/100] Skip to STEP 8
Instead of dealing damage, this would recover HP.
3 If a weakness is apparent:
Damage = Damage + [Damage*weakness percent/100]
-----STEP 8 Hit Determination-----
If any one of these conditions are met, the rest of the conditions are skipped.
1 Check if defender is transient (Ghosts for example). If attack is physical, attack misses.
Attack hits a transient foe if the attack is an Aura Tech.
2 Check if a Deflection move is preventing successful hits on the target. Deflection moves
successfully block unblockable moves.
3 Check if the attack is unblockable.
4 If Target is afflicted with Sleep, Blind, Stun, Paralyze, Confused, or Drunk, the attack will
always hit.
5 If the attacker has a Hit Percentage of 100, then the attack will always hit.
6 If Random Value 1...100 > Hit Percentage, the attack misses. For example. If hit percentage is 90,
and the random value is 94, the attack would be considered to have missed. Weapons determine the
accuracy of a normal attack. Techs have predetermined accuracy.
-----STEP 9 Critical Hit Chance-----
NOTE: CritHit Chance is 4/100. It can be adjusted according to equipped items.
1 This STEP is only applicable if the attacker is using a normal attack.
2 If Crit Chance increasing items are equipped:
TRIBAL WAR AX Crit Chance +21
DEATH DEALER Crit Chance +21
Dragoon Bracelet Crit Chance +46
IF Crit Chance is greater than 100, Crit Chance equals 100.
3 Attack is Critical if: 1...100 < Crit Chance
4 If Critical is successful: (Damage*250)/100
Basically multiply Damage by 2.5, but again... rm2k3 is gay.
If Damage succeeds 9999, Damage is set to 9999.
MAGIC ATTACK MADE BY CHARACTERS or MONSTERS
OffInt = Attacker's intelligence
DefInt = Defender's intelligence
Spell Power = Damage Spell inflicts
Spell Variance = Any number 1 through 200.
-----STEP 1-----
{([OffInt*3]100)/150} + Spell Power = Damage
If spell power = 0, then Damage is set to 0 and Steps 2 through 6 are skipped.
-----STEP 2 Random Variance-----
(Spell Variance * Damage)/100
NOTE: Spell variances are not commonly as wild as 1...200. A common spell variance would be 95...105,
with 100 serving as a point of origin. No matter what the spell variance, if it equals 100,
the magic attack will not deviate (or variate) from STEP 1.
Spell Variances differ between magic attacks and are predetermined.
-----STEP 3 Defense Modification-----
If Ignore DEFINT is ON, this STEP is skipped.
Damage - [DefInt/2] = Defender's Intelligence Modifies Damage
If Damage < 0 after this calculation, Damage is randomly set to 0 or 1.
Healing Spells use this equation
Damage + [Defint/2] = Ally's Intelligence Modifies Damage
-----STEP 4 Target Defending-----
DEFENSIVE STANCE DOES NOT AFFECT MAGIC DAMAGE
-----STEP 5 Target Row-----
ROW DOES NOT AFFECT MAGIC DAMAGE
-----STEP 6 Friendly Fire-----
FRIENDLY FIRE DOES NOT AFFECT MAGIC DAMAGE. MAGIC DAMAGE IS UNFORGIVING! RAAAAAWR!!!
-----STEP 7 Class Modifier-----
If attack has a class attribute, the following steps are applied. If one of the following conditions
are met, the following conditions are not checked and the the process skips to STEP 8. If the spell
is a healing spell, all these conditions are skipped.
1 If a resistance is apparent due to an item, magic, tech or natural resistance:
Damage = Damage - [Damage*resist percent/100] Skip to STEP 8
2 If a class attribute absorption is apparent due to an item, magic, tech or natural absorption:
HP Recover = [Damage*absorption percent/100] Skip to STEP 8
Instead of dealing damage, this would recover HP.
3 If a weakness is apparent:
Damage = Damage + [Damage*weakness percent/100]
-----STEP 8 Hit Determination-----
If any one of these conditions are met, the rest of the conditions are skipped.
If spell is a healing spell, the spell will not miss, unless otherwise specified.
1 MAGIC ATTACKS AFFECT TRANSIENT FOES.
2 Check if a Magic Barrier move is preventing successful hits on the target. Magic Barrier moves
successfully block unblockable moves.
3 Check if magic attack is unblockable.
4 If Target is afflicted with Sleep, Blind, Stun, Paralyze, Confused, or Drunk, the attack will
always hit.
5 If the magic attack has a Hit Percentage of 100, then the attack will always hit.
6 If Random Value 1...100 > Hit Percentage, the attack misses. For example. If hit percentage is 90,
and the random value is 94, the attack would be considered to have missed.
If Damage succeeds 9999, Damage is set to 9999.
~~~~~~~~Special Combat Tactics~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----Escape-----
Enemy's can escape whenever they want. Not so much luck for the party.
Party Average Agility = PA
Enemy Average Agility = EA
Escape Chance = EC
(PA * 100) / EA - Random 1...20 = EC
If EC < 100: Random number 1...100 < EC for a successful escape.
If EC > 100: party successfully escapes regardless.
-----Pre-Emptive Strikes and Ambushes-----
If you engage a foe from behind, it is consided a Pre-Emptive Strike.
If you are engaged from behind or by surprise it is considered an Ambush.
--Pre-Emptive Strikes begin with your party member's time bars full. The enemy's time bar doesn't
begin to fill until the first action is made by a party member. The enemies are also facing the
opposite direction. Once an action is made, they all turn to face the party.
--Ambushes begin with your party facing the opposite direction. The enemy's time bars are full and
the party's time bars will not begin to fill up until the first enemy action is made.