Page 22 of 22

Re: Simulationcraft - Feral rotation discussion and script

Posted: Fri May 02, 2014 12:07 am
by raffy
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

Re: Simulationcraft - Feral rotation discussion and script

Posted: Thu May 22, 2014 3:37 pm
by Tremnen
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!

Re: Simulationcraft - Feral rotation discussion and script

Posted: Thu May 22, 2014 9:18 pm
by aggixx
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.

Re: Simulationcraft - Feral rotation discussion and script

Posted: Thu May 22, 2014 10:07 pm
by Tremnen
That reforge O_O

Re: Simulationcraft - Feral rotation discussion and script

Posted: Fri May 23, 2014 6:27 pm
by Cetlysm
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.

Re: Simulationcraft - Feral rotation discussion and script

Posted: Sun May 25, 2014 3:17 pm
by aggixx
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.

Re: Simulationcraft - Feral rotation discussion and script

Posted: Sat Jun 28, 2014 3:17 am
by perlin
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?

Re: Simulationcraft - Feral rotation discussion and script

Posted: Sat Jun 28, 2014 9:28 pm
by Kraineth
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).

Re: Simulationcraft - Feral rotation discussion and script

Posted: Sun Jun 29, 2014 12:48 am
by Stenhaldi
Not sure why you're getting a difference in "wait time" though. Possibly an oddity with how simc measures wait time?

Re: Simulationcraft - Feral rotation discussion and script

Posted: Sun Jun 29, 2014 6:04 pm
by aggixx
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.

Re: Simulationcraft - Feral rotation discussion and script

Posted: Wed Jul 02, 2014 6:38 pm
by Amitty
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?

Re: Simulationcraft - Feral rotation discussion and script

Posted: Wed Jul 02, 2014 7:55 pm
by Tinderhoof
It was totally a hunters ex girlfriend. We just got caught in the crossfire.

Re: Simulationcraft - Feral rotation discussion and script

Posted: Thu Jul 03, 2014 7:00 pm
by aggixx
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.

Re: Simulationcraft - Feral rotation discussion and script

Posted: Thu Jul 03, 2014 7:21 pm
by aggixx
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.