Register

Simulationcraft - Feral rotation discussion and script

Face-rippin fun.
Exalted
User avatar
Posts: 835
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Fri May 02, 2014 12:07 am

Internally, there is reference to the top-level action list, "main" or "advanced" or w/e, that is used to find which action list should be executed when an input is requested. swap_action_list,name=xyz aborts the existing action list execution, changes the reference of the top-level action list to "xyz", and then restarts the action list execution. Transitioning between action lists can be used to encode stateful information.

run_action_list,name=xyz is roughly equivalent to copying the actions from list "xyz" and injecting them at this location (it works just like a subroutine.) Note: any conditionals on this action will propagate to all of these referenced actions.
Code: Select all
main+=/action1,if=abc      main+=/run_action_list,name=test,if=abc
main+=/action2,if=abc  ==  test+=/action1
                           test+=/action2

So yes, run_action_list always returns to the calling list unless an action was taken or the top-level action list was changed.
Spoiler: show
Code: Select all
// list of action lists
lists = {
   "main" = {action1, action2, run_action_list("foo"), action3, swap_action_list("foo")}
   "foo"  = {action4, action5}
}

current = "main" // reference to current action list

// basic combat loop
while (...) {
   ...
   // try to find an action to execute
   run_current_action_list_once();
   ...   
}

Action List Functions:
Code: Select all
// execute the action list referenced by "current"
// (exceptions are used as multi-level goto)
// if a Restart exception is thrown, try the action list again
// if a Clicked exception is thrown, an action was taken, return true
// if run_action_list() completes normally, there is nothing to do, return false
boolean run_current_action_list_once() {
   while (true) {
      try {
         run_action_list(current);
         return false; // no actions taken         
      } catch (Clicked ex) {
         return true; // action was clicked
      } catch (Restart ex) {
         // retry the action list         
      }
   }
}

// execute the action list referenced by name
void run_action_list(name) {
   for (lists[name] as action) {
      action();
   }
}

// change the current action list and restart
void swap_action_list(name) {
   current = name;
   throw new Restart();
}

// generic implementation for action1
void action1() {
   if (energy > 50 and ...) {
      MANGLE.click(); // throws Clicked() exception on success
   }   
}

Example:
Code: Select all
current = "main"
run_current_action_list_once()
run_action_list("main") => {action1, action2, run_action_list("foo"), action3, swap_action_list("foo")}
action1()
action2()
run_action_list("foo") => {action4, action5}
action4()
action5()
// end of "foo" action list
action3()
swap_action_list("bar")
current = "bar"
throw to Restart
// according to run_current_action_list_once(), Restart => we try again
// however the current action list has changed
run_action_list("bar")
action4()
action5()
// end


HotW casting in Catus is implemented using a lot of action list runs and swaps:
https://dl.dropboxusercontent.com/u/298 ... Cleave.txt
Image

Revered
Posts: 247
Joined: Wed Jul 31, 2013 10:50 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby Tremnen » Thu May 22, 2014 3:37 pm

I was checking out the simcraft dps rankings and noticed somethign weird. they are using primarily red gems for the gear list. anyone know who needs to get updated on what the proper way to gem in BIS gear? we could be beating Fury Warriors damnit!

Exalted
User avatar
Posts: 1186
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Thu May 22, 2014 9:18 pm

Yeah whoever updated the profile for new item levels probably used AMRs default weights or something (not that I can blame them, really). Will fix.

Edit: Awwwwww yeaaaaahhhh.
Image

Edit 2: Alright fixed, SimC website only resimulates on an interval so it'll take a couple hours to update.
Image

Revered
Posts: 247
Joined: Wed Jul 31, 2013 10:50 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby Tremnen » Thu May 22, 2014 10:07 pm

That reforge O_O

Honored
User avatar
Posts: 124
Joined: Thu Feb 14, 2013 5:15 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby Cetlysm » Fri May 23, 2014 6:27 pm

why is feral using alchemy?
edit:nvm I guess it dosn't matter
synapse_springs_2 7.6 0.0 62.8sec 62.8sec 16.73% 16.73%

edit2: im stupid, I meant blacksmith, that would boost secondary geming a bit tho.

Exalted
User avatar
Posts: 1186
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sun May 25, 2014 3:17 pm

Its alchemy because its been that way since the beginning of the expansion and I never bothered to change it. I did sim it in Catus though and I'm not seeing a DPS gain in this particular case though, not sure why that is exactly.
Image

Posts: 1
Joined: Sat Jun 28, 2014 2:44 am

Re: Simulationcraft - Feral rotation discussion and script

Postby perlin » Sat Jun 28, 2014 3:17 am

Question of a newbie (& non native english speaker: sorry for the english) concerning feral rotation:

when applying the rules for when applying CP generator, described in Pawkets guide, I end up with long waiting time during which combo points are below 5. From my point of view, this should be a dps loss, because:
- rip is not ready for use: if a strong agility proc appears, you could miss it (especially the best part of decreasing in time procs as the one from ticking ebon detonator)
- you are loosing the damage from mangle or shred you could do during the waiting time

I try to check this using simulation craft. I had the following results:
- base case (standard action list, Patchwerk): dps = 328218 +- 153 wait time = 131.7
- case with cp generator used if combo points < 5: dps = 326 621 +- 151 wait time = 72.4
- case with cp generator used all the time: dps = 326 582+- 152 wait time = 72.5

Obviously, Simc confirms the rules given by Pawket, but I really don't understand why. Could somebody explain what I am missing?

Honored
User avatar
Posts: 107
Joined: Sun Apr 07, 2013 4:26 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Kraineth » Sat Jun 28, 2014 9:28 pm

You don't want to just spam abilities because it is more important to have pooled energy a few combo points than sit at 5 combo points all of the time.

It is pretty hard to miss getting Rip+Rake up during a trinket proc unless you have 0 energy and less than 2 combo points.

Also, those abilities you are using outside of trinket procs are doing less damage than if you waited for a trinket proc and then used the energy you had been pooling (obviously you should aim to never energy cap).

Revered
User avatar
Posts: 433
Joined: Wed Jun 29, 2011 4:49 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Stenhaldi » Sun Jun 29, 2014 12:48 am

Not sure why you're getting a difference in "wait time" though. Possibly an oddity with how simc measures wait time?

Exalted
User avatar
Posts: 1186
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sun Jun 29, 2014 6:04 pm

Wait time is basically any time where you're not casting or in a GCD. The "pool_resource" line is also an action so that counts as "active time"; if you're getting a significant difference in wait time I would look at what amount of time the profiles are spending on pool_resource.
Image

User avatar
Posts: 11
Joined: Tue Jun 24, 2014 4:28 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Amitty » Wed Jul 02, 2014 6:38 pm

Hello. I just got the HC WF TED trinket tonight and I've never been more confused in my life.

TED :
1. Procs from Pre HT
2. Procs from Pre Pot
3. Procs from Prowl
4. Does not proc with opener sometimes
5. Procs right after Rune drops
6. Probably some other wacky stuff that I have yet to discover

So what I wanted to ask is > Does one of you guys have an ex girlfriend working as a Blizzard Dev in charge of itemization?

Exalted
User avatar
Posts: 1533
Joined: Mon May 24, 2010 10:21 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby Tinderhoof » Wed Jul 02, 2014 7:55 pm

It was totally a hunters ex girlfriend. We just got caught in the crossfire.

Exalted
User avatar
Posts: 1186
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Thu Jul 03, 2014 7:00 pm

It basically can proc off of any spell you cast while in combat. If you're getting procs in cases 1, 2, and 3 you listed you're using those things too late: they should never be cast while in combat (well, you can pre HT in combat, but with TED you shouldn't).

Unfortunately it's probably the worst part of the trinket and you can't really do much about it. If there's a lull in combat, don't cast anything; wait until the lull is about to end before casting a 0cp Savage Roar just in case it triggers a proc.
Image

Exalted
User avatar
Posts: 1186
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Thu Jul 03, 2014 7:21 pm

raffy wrote:run_action_list,name=xyz is roughly equivalent to copying the actions from list "xyz" and injecting them at this location (it works just like a subroutine.) Note: any conditionals on this action will propagate to all of these referenced actions.

By the way, I found out recently this is false. The run_action_list action in SimulationCraft does NOT return to the source list after its done executing, so any lines in the source will be blocked by the run_action_list line as long as its conditional is true.
Image

Previous

Return to Kitty DPS

Who is online

Users browsing this forum: Bing [Bot], Google Adsense [Bot] and 4 guests