Ovale Spell Priority

311 - Certain tests not functioning right

What version of Ovale are you using?
5.4.3

What class and specialization were you playing when the problem occurred?
Feral Druid

Which script were you using when the problem occurred? If possible, please provide the smallest script that demonstrates the problem.
Leafkiller's

What steps will reproduce the problem?

AddIcon { if FutureRakeTickDamage() * {target.TicksRemain(RAKE)+1} - LastRakeTickDamage() * target.TicksRemain(RAKE) >= MangleCatDamage() Spell(RAKE) Spell(MANGLE_CAT) }
AddFunction TestFunc asValue=1 { FutureRakeTickDamage() * {target.TicksRemain(RAKE)+1} - LastRakeTickDamage() * target.TicksRemain(RAKE) >= MangleCatDamage() }
AddIcon { if TestFunc() Spell(RAKE) Spell(MANGLE_CAT) }
AddFunction TestFuncTwo asValue=1 { FutureRakeTickDamage() * {target.TicksRemain(RAKE)+1} - LastRakeTickDamage() * target.TicksRemain(RAKE) }
AddIcon { if TestFuncTwo() >= MangleCatDamage() Spell(RAKE) Spell(MANGLE_CAT) }

First two icons will display Rake incorrectly most of the time (but not all; seems to be maybe anytime they're not equal?). The last icon works as expected. Obviously this code block doesn't work outside the leafkiller's script and I'll see if I can't narrow it down more later but got raid in a few so don't have time to get down to the nitty gritty yet.

User When Change
jlam Nov 06, 2013 at 00:36 UTC Changed status from New to Started
jlam Nov 06, 2013 at 00:36 UTC Changed assigned to from Sidoine to jlam
ShmooDude Nov 04, 2013 at 00:34 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

  • 3 comments
  • Avatar of jlam jlam Nov 06, 2013 at 00:36 UTC - 0 likes

    I've thought it through and I'm making the change so that asValue=1 will cause the nodes inside the function group to also evaluate by value.

  • Avatar of ShmooDude ShmooDude Nov 04, 2013 at 03:50 UTC - 0 likes
    AddFunction TestTicksRemain asValue=1 { target.TicksRemain(RAKE) }
    AddFunction TestFuncThree asValue=1 { FutureRakeTickDamage() * {TestTicksRemain()+1} - LastRakeTickDamage() * TestTicksRemain() >= MangleCatDamage() }
    AddIcon { if TestFuncThree() Spell(RAKE) Spell(MANGLE_CAT) }
    

    This also works properly. The question is is this how asValue=1 is intended to work? IE it remains a timestate till the entire function finishes evaluating, and then converts whatever the end result is to a constant. Or should it function more like converting each node within that function to a constant first and then evaluate (which is kinda how I expected it to work).

  • Avatar of ShmooDude ShmooDude Nov 04, 2013 at 00:36 UTC - 0 likes

    It might simply be that the TicksRemain calls have to be wrapped into an asValue=1 function before running the comparison? I'll probably test this after raid or tomorrow.

  • 3 comments

Facts

Last updated
Nov 06, 2013
Reported
Nov 04, 2013
Status
Started - Work on this issue has begun.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.
Votes
1

Reported by

Possible assignees