46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
TODO: rename restart scene to cleanup scene
|
|
TODO: encapsulate the data structures
|
|
TODO: Get the rooms working
|
|
|
|
TODO: Authentication
|
|
TODO: server is slaved to the client
|
|
|
|
TODO: I completely forgot about status ailments
|
|
TODO: Time delay for requesting region packets
|
|
TODO: command line parameters overriding config.cfg settings
|
|
|
|
--Battle System--
|
|
|
|
TODO
|
|
|
|
--Requirements--
|
|
|
|
The enemies need AI scripts
|
|
The scripts need to be able to generate other enemies (frog king).
|
|
The characters need a flag to show if they're in a combat instance or not, to signify of they should be unloaded client-side
|
|
On each game loop, the server should envoke each combat instance's update function
|
|
Each combat instance invokes each enemy's and character's update functions
|
|
These update functions increase the ATB guagues
|
|
if an ATB guage is full
|
|
than the stored command is executed
|
|
the players issue their commands during the build up
|
|
if there isn't a command ready, then the player is still choosing
|
|
for the enemies, the stored commands are driven by scripts, so when the enemies need to attack, their attached scripts are called.
|
|
after the commands are called, the ATB is reset to 0.
|
|
etc...
|
|
|
|
--Enemy API--
|
|
|
|
enemyTables -- The global store of enemy tables. Only accessed by C++ code (unless you want to break something).
|
|
|
|
enemy.new(parameters) -- return a new enemy object
|
|
|
|
table.logic: the AI logic. If null, do nothing
|
|
table.ref: reference to the enemy itself, for use by API functions, set by constructor?
|
|
|
|
combat -- the combat API
|
|
combat.new(mapIndex, x, y) -- return combat instance's index
|
|
combat.pushenemy(c, enemy) -- return the enemy's position
|
|
combat.popenemy(c, position) --
|
|
|