Mechanics thread

"
Tom94 wrote:

You are lacking a divide (or multiply, depending where you put it) by 100 in your left hand side to make it correct. Then the left hand side _would_ be the percentage of damage dealt relative to the mob's effective maximum health, which again gets multiplied by 276.
This formula doesn't tell me in any way whether this is rounded or not, though, since it could either be calculated as a floating point number or an integer (which could make sense, considering that dealt damage and life both always are round numbers).

Guess I will need an answer from one of the people who actually programmed this for such kind of information. :/


Yes i forget a x100 in the right side, but it doesn't change the idea. The game calculate the duration of the shock without making an intermediate calc with the need to round the result before using it to know the shock duration, but makes one operation to know directly the shock duration.
The 1% life = 276ms is an understandable representation of the result of the formula used but not the formula itself.

At least it seems more easier like this for me, but i'm not a programmer, and i could be wrong ;)
"
Kissan wrote:
The game calculate the duration of the shock without making an intermediate calc with the need to round the result before using it to know the shock duration, but makes one operation to know directly the shock duration.


The formula _has_ to be calculated in multiple steps by the processor. You can look at single arithmetic operations like multiplications as single operations, but not a whole formula.

"
Kissan wrote:
At least it seems more easier like this for me, but i'm not a programmer, and i could be wrong ;)


There are well-defined (by the programming language) intermediate results either in memory or in a processor register after every operation. It is up to the programmer to decide whether certain variables are "integers" (round numbers) or "floats" (numbers with a fraction part), affecting performance as well as behaviour of operations.

Which one of these number representations was chosen at this particular part of the formula - this is (and was) my question.
IGN: Pirteloli
Last edited by Tom94 on Jan 9, 2014, 3:21:44 PM
Now, I'm not really 100% sure about this and the whole question has stretched a bit off of game mechanics area...

But I think this temporary calculations like this are done as float numbers and discarded afterwards, they aren't stored anywhere after the execution for easy access.

D = N ÷ ( L ÷ 100 ) × 276ms

Anyway, as you can see, some parts of the equation could be truncated freely and other can't be.

"L ÷ 100" could be truncated as the error isn't great on big health numbers, for instance 81,6 and 81 if enemy health is 8160.

N ÷ ( L ÷ 100 )

However, if this step was truncated we'd have shock durations only in multipliers of 276ms, as 276, 552, 828, 1104...

So, integer usage in this case is either irrelevant or unlikely.
Wish the armchair developers would go back to developing armchairs.

◄[www.moddb.com/mods/balancedux]►
◄[www.moddb.com/mods/one-vision1]►
"
raics wrote:

So, integer usage in this case is either irrelevant or unlikely.


Why would it be unlikely? From a programmer's perspective it would make a lot more sense to have damage taken and effective monster health sitting in integer variables (disregarding other implementation details an outsider can not possibly know).

So if this actually is the case, then writing
"
static_cast<float>(dmg) / static_cast<float>(hp)

would be a lot more troublesome (and unintuitive when not thinking so much about possible consequences)
than issuing a simple integer division
"
dmg / hp


There are many points you could make about the likelihood of the formula behaving in a certain way, but speculation is not what I am looking for in a thread which's purpose is to give concrete information.
IGN: Pirteloli
Last edited by Tom94 on Jan 9, 2014, 3:53:55 PM
"
Tom94 wrote:

Why would it be unlikely? From a programmer's perspective it would make a lot more sense to have damage taken and effective monster health sitting in integer variables (disregarding other implementation details an outsider can not possibly know).

There are many points you could make about the likelihood of the formula behaving in a certain way, but speculation is not what I am looking for in a thread which's purpose is to give concrete information.


Yes, my point was they probably stored the number as integer whenever it made sense to do so and error wasn't too serious. In this case it's all up to programmer code of honor, or 'can I live with steps in a linear function'. They are known to have 'steps' but on calculating numbers that are stored long-term, like magic find or skill cost calculations.

Anyway, this is a question only a dev can reliably answer, I'm afraid. Unfortunately, they aren't really frequenting this thread anymore, try opening a new thread in gameplay help section and give it some long and complicated-sounding title, something like 'looking for help from devs with in-depth game calculations and finding THE answer to life, universe and everything'.
Wish the armchair developers would go back to developing armchairs.

◄[www.moddb.com/mods/balancedux]►
◄[www.moddb.com/mods/one-vision1]►
Last edited by raics on Jan 9, 2014, 4:12:18 PM
I apologize if this has been addressed somewhere in this thread, but scouring over 200 pages is not realistic.

http://pathofexile.gamepedia.com/Block

As confirmed in this thread some time ago, we know reflected damage can be blocked.
citation
http://www.pathofexile.com/forum/view-thread/11707/filter-account-type/staff/page/10#p735869


However, after some testing it seems to me that on-block effects, at least that of Aegis Aurora, is not applied when blocking reflect damage. Other on-block effects, such as the anvil and tempest shield, I had no great way to test. On my 69% block chance character equipped with and Aegis Aurora and a left-side Shavronne's Revelation, I used the wand basic attack into a reflect rare all day, taking a couple damage per unblocked shot but never getting the es replenishment from Aegis Aurora.

Am I overlooking something? Is this intended behavior?
Last edited by ballerdeluxe on Jan 9, 2014, 9:37:38 PM
%increase flask charge node

does it increase charges from surgeon flask?

when you deal a crit, you will get 1+% charges or not?
IGN: Catastrophically
"
raics wrote:

Yes, my point was they probably stored the number as integer whenever it made sense to do so and error wasn't too serious. In this case it's all up to programmer code of honor, or 'can I live with steps in a linear function'. They are known to have 'steps' but on calculating numbers that are stored long-term, like magic find or skill cost calculations.


Unfortunately having those "steps" in the duration function would introduce a very large relative and also absolute error.
For the absolute error, considering close to 100% increased shock duration we would be talking about half-a-second "steps", which is huge for builds, that barely manage to shock, especially since those often reach over 10 attacks per second.
Regarding the relative error, when trying to trigger a shock you would require 1% of the target's effective maximum health to breach the 300ms barrier with "steps", while it would only take about 0.6% of the target's effective maximum health if the function was smooth. That's a 40% difference! One would have to almost double one's lightning damage to make up for this!

Therefore I disagree, that it's all up to programmer code of honor.

"
raics wrote:

Anyway, this is a question only a dev can reliably answer, I'm afraid. Unfortunately, they aren't really frequenting this thread anymore, try opening a new thread in gameplay help section and give it some long and complicated-sounding title, something like 'looking for help from devs with in-depth game calculations and finding THE answer to life, universe and everything'.


Thanks for the suggestion, I will definitely do that before investing many hours trying to reach lightning damage that won't help me at all.

Also thank you for all your answers - they really are appreciated. Have a nice day and a late happy new year! :)
IGN: Pirteloli
"
Tom94 wrote:
Therefore I disagree, that it's all up to programmer code of honor.

Also thank you for all your answers - they really are appreciated. Have a nice day and a late happy new year! :)


Well yes, I was kinda joking, programmers have no honor :)

Happy new year to you too and sorry I couldn't have been of more help.

"
ballerdeluxe wrote:

However, after some testing it seems to me that on-block effects, at least that of Aegis Aurora, is not applied when blocking reflect damage. Other on-block effects, such as the anvil and tempest shield, I had no great way to test. On my 69% block chance character equipped with and Aegis Aurora and a left-side Shavronne's Revelation, I used the wand basic attack into a reflect rare all day, taking a couple damage per unblocked shot but never getting the es replenishment from Aegis Aurora.

Am I overlooking something? Is this intended behavior?


Yoes, it's intended.

Reflected damage is not classified as a 'hit' from your enemy so it can't really trigger anything besides damage avoidance mechanics, it's just a part of your damage that came back. And it's just pure damage, it can't carry any additional effects, be it on hit, leech or such.
Wish the armchair developers would go back to developing armchairs.

◄[www.moddb.com/mods/balancedux]►
◄[www.moddb.com/mods/one-vision1]►
Last edited by raics on Jan 10, 2014, 2:13:40 AM
I got an answer to my question - seems like I was right. Already added the new information to the wiki, but I figured that some people here might be interested, too.

1. Increased XXX duration

"
Tom94 wrote:
1. Increased XXX duration:
Let us take shock as an example. According to currently available information the duration of the shock needs to be at least 300ms. If I had 100% increased shock duration and would deal lightning damage which would normally trigger a shock of 200ms, which would be 400ms after applying the increase in duration. Would this shock be applied or not?


"
Mark_GGG wrote:
1) Yes.



2. Smoothness of the duration function

"
Tom94 wrote:
2. Smoothness of the duration function:
Let's again take shock as an example so we can use numbers as examples. According to currently available information the duration of the shock is 276ms * P where P is the percentage of the target's effective maximum health dealt as lightning damage.
The question is: Is this percentage rounded within the calculation or not? In other words, is the shock duration stepwise, with steps as big as 276ms * increased shock duration or is it smooth?


"
Mark_GGG wrote:
2) The percentage of life which is multiplied by 276ms is currently an integer value. However, in the current implementation nothing would be harmed by changing this, so I intend to do so for a future patch, allowing smoother ranger of durations.

IGN: Pirteloli

Report Forum Post

Report Account:

Report Type

Additional Info