Here we go. No need to have separate topics for this right now. Just post everything in here.

The engine is set up for real-time combat ala "Tales of" or similar.
The difference between real-time, wait, and turn based is actually very simple: Battle Actions. In addition, a real-time game loop always allows non-blocking script updates and allows scripts to do pretty much whatever they want. Although we will be focusing on turn-based first.

How it works:
--c++ engine side
----Manage entities, updates, rendering, scripts.
----Keep a queue of Battle Actions to be used by scripts.
----Handle all the heavy implementations that 99% of the time scripts wouldn't even want to deal with to keep it simple and running fast.

--Script side
----Allow access to all game data.
----Keep track of animation states, and self states.
----Add each combatants actions to the BattleActionQueue as they are input. (since UI is under construction this could be just auto-attack for now)
----Generate enemy actions with AI. (again, probably auto-attack)
----Run combat simulation
------Combatants take an action only when they have an action pending, then are responsible for removing it from the queue when they are done.
------Repeat.


I have undoubtedly forgot to include something, and am in the process getting script bindings together...
This should be fun!

@Imzogelmo : How are the damage formulas coming along?