Herp I didn't get any work done today, busy busy and then steam summer sale lol.
I'm trying to figure out what you need in terms of access for the parser.
So far it will have
cast sequences - so you can do your stupid combos (seriously no other game has these, combos suck, why not just have one button that does 3 attacks)
actor.aura - whether aura exists
actor.aura.remaining - how much longer on the remaining
actor.cd - whether cd exists (since cooldowns are auras this is just shorthand for a specific index of aura)
actor.cd.remaining - ditto
gcd.last - time since last gcd, useful for timing oGCD events
gcd.next - time till next gcd, probably more useful for timing of oGCD
attr.[attr] - your current attribute
there are also several macros, which signify different sections of script
[SETUP] - setup vars and character
[PRECAST] - currently not supported, will just be ignored.
[GCD]
[OGCD]
There will also likely be a translator table of skill names...so you don't have to type in LNC_BLOOD_FOR_BLOOD you can just type blood_for_blood.
The format (for the rotation it is currently using) will likely be something like this:
Code:
[SETUP]
#sets up an alias for our player
player=p1
#sets up an alias for our target
target=t1
#load skills and traits
p1.load.lnc
p1.load.drg
#setup attributes
p1.attr.str=500
p1.attr.dex=200
#setup server variables
sim.duration=600
sim.execute=200
#setup diagnostic or no - diagnostic runs 1 run with log output, for testing your rotation
sim.diagnostic=true
#otherwise setup sim trials
sim.trials=100000
#i/o
sim.output=./output.txt
[PRECAST]
# currently does nothing
[GCD]
(!p1.aura.heavy_thrust){heavy_thrust}
(t1.aura.chaos_thrust.remaining<10){impulse_drive,disembowel,chaos_thrust}
(!t1.aura.phlebotomize){phlebotomize}
(){true_thrust,vorpal_thrust,full_thrust}