StyleProcessor changes

A place to submit .patch fixes for the DOL SVN

Moderator: Developer Team

Re: StyleProcessor changes

Postby Yay » Wed Jul 22, 2015 11:53 pm

I do not need to get the base damage right because I used absorbRatio as I found out is similar to the approach with DAMAGE_RATIO (simply divided by 3). The overall damage is wrong then ofc, but the the style damage won't change with higher base damage (cap for that matter). It shouldn't be necessary to change anything in that regard when changing the base damage (at least damage wise). That's what I aimed for, so I can change them independently from each other.

What's also nice, is, that the formula regarding (cap) damage is actually correct and I can simply take it over to DOL (it partly is I think) :)

The Style_Base - Style_Level * GrowthRate thing in the style formula still doesn't make sense to me tho.
Code: Select all
STYLE DAMAGE = (BASE + SPEC * GROTH) / 10 * CURRENTSPEED * UNSTYLEDDAMAGE / DAMAGECAP + UNSTYLEDDAMAGE * TOASTYLE
(from Vanesyra)
This however does make more sense. My problem with this is, that the quantum is not a nice round number currently and I'm not entirely sure how I get around this (rounding maybe?). Also my test values are all gone except for 16 styles (that I have in my DB) ... LibreOffice is a pain to work with sometimes :/.

BTW: My method of testing is pretty straight forward at least for style damage. I just use either one setup and just change spec or I use items for this purpose. I avoid quickness, ToA-MeleeSpeed and ToA-Styledam altho I'm confident in the formula (not so much when it comes to rounding tho). Also it's definitely Qui-60 for swing speed calculations. If I change it to -50 it doesn't match the actual swing speed significantly (20+ swings per weapon and logged time). Here is the short version of this test:

Image
User avatar
Yay
Contributor
 
Posts: 174
Joined: Mon May 21, 2012 9:06 pm

Re: StyleProcessor changes

Postby Yay » Thu Jul 23, 2015 8:25 pm

So I updated the StyleProcessor.cs to version 3. Only change is the delve and is a takeover of my findings regarding style quantum. I also had to update the translation file because devastating was missing. I do not know the exact translations in German ("Vernichtend" maybe) or French.
User avatar
Yay
Contributor
 
Posts: 174
Joined: Mon May 21, 2012 9:06 pm

Re: StyleProcessor changes

Postby HunabKu » Fri Jul 24, 2015 7:12 am

Thanks a lot for you work ;-)
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: StyleProcessor changes

Postby Leodagan » Fri Jul 24, 2015 7:18 am

So I updated the StyleProcessor.cs to version 3. Only change is the delve and is a takeover of my findings regarding style quantum. I also had to update the translation file because devastating was missing. I do not know the exact translations in German ("Vernichtend" maybe) or French.
French for Devastating : "Dévastateur"

But I didn't read the update yet ;)
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: StyleProcessor changes

Postby Leodagan » Fri Jul 24, 2015 8:58 am

If I understand your update :

Style Damage are now using a Growth Offset and a Growth Rate ? (provided by a new DB field)

If you don't provide new "GrowthOffset" to existing DB Styles they will act like before only using GrowthRate ?

the "quantum" is used to display the according "Delve" based on the total of GrowthOffset and GrowthRate, this is not needed in any damage calc ?

When detecting a "Stealth Style" you revert to a fixed weapon speed calc and a specific 2-handed calc (which I have trouble to understand... I though Weapon DPS was never used for style damage ?)

Would it mean for Stealth Opening, you would do great damage with a one hand dirk 1.2dps (unmodified by weapon DPS), but you could do low damage with a two-handed staff with only ~7 dps (from 16.5dps max damage)

Well any way the regular style update looks really fine, CS Opening can be tuned later, and the delve update is really nice for improving tooltips :)

Do you have some ideas on how to gather live values of Growth Offset and Growth Rate efficiently ?
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: StyleProcessor changes

Postby Yay » Fri Jul 24, 2015 11:32 am

First of, thank you for looking into it :)
Style Damage are now using a Growth Offset and a Growth Rate ? (provided by a new DB field)
Yes.
If you don't provide new "GrowthOffset" to existing DB Styles they will act like before only using GrowthRate ?
If you set "GrowthOffset" to 0 (where NULL is handled as 0) only GrowthRate is taken into account.
Code: Select all
( GrowthOffset + GrowthRate * Spec) * SwingSpeed = GrowthRate * Spec * SwingSpeed WHERE GrowthOffset = 0
the "quantum" is used to display the according "Delve" based on the total of GrowthOffset and GrowthRate, this is not needed in any damage calc ?
The quantum is only relevant for delve in code. However in the DB I will work with this quantum because there are only 4 different growth rates in the game that are multiples of this quantum, so I will round to this quantum. I don't think it's a good idea to use this quantum in the growth calculation because it results in incompatibilities.
When detecting a "Stealth Style" you revert to a fixed weapon speed calc and a specific 2-handed calc (which I have trouble to understand... I though Weapon DPS was never used for style damage ?)
The idea was that these styles are NOT influenced by weapon speed at all. In later testings I found out that this is slightly influenced by weapon speed when you use 2h-weapon (that only the SB can do). I found no correlation to weapon speed and damage with these styles for 1h-weapons however (the cap style damage is really always the same with the same spec).
Would it mean for Stealth Opening, you would do great damage with a one hand dirk 1.2dps (unmodified by weapon DPS), but you could do low damage with a two-handed staff with only ~7 dps (from 16.5dps max damage
No that should not be the case. The damage from 2h-weapon is at minimum 25% better than with a 1h-weapon (the 2h-weapon has to be 2.1 or faster tho) and the DPS and SPD from 2h-weapon causes additional style damage. What happens below 2.1 weapon speed is unknown to me. I could floor it, but yeah there is no slower 2h weapon in the game.

Common styles (without StealthRequirement) do not have a different behavior for 2h-weapons.
Do you have some ideas on how to gather live values of Growth Offset and Growth Rate efficiently ?
That's why I have high hopes in the quantum :D

Testing requirements:
  • I try to avoid haste of any form, quickness and ToA-StyleDam and also have a qui of 60 (if not I compensate, but rounding might be an issue in that case)
  • use a slow weapon (DPS doesn't matter) that you ideally know the WeaponSpeed of (delve and tooltips do differ from each other and sometimes are just completely off for whatever reason)
  • get you some items with +Spec (ideally +11 and nothing on the weapon)
  • spec 50 in the style line you wanna test
  • look for mobs you do cap damage on (usually up to level 25)
Testing method
  • hit the mobs once without style
  • hit them once with every style
  • do this once for +0 Spec and once for +11 Spec
Calculation goes like this:
Code: Select all
StyleDam = StyledCap - UnstyledCap - ( ToA-StyleDam * UnstyledCap ) GrowthRate = (StyleDam(YSpec) - StyleDam(XSpec))/(YSpec-XSpec)/SwingSpeed GrowthOffset = StyleDam(XSpec)/SwingSpeed - GrowthRate * XSpec
XSpec and YSpec are a specific Spec including RR and item boni. StyleDam(XSpec) is the StyleDam at XSpec. ToA-StyleDam is ideally 0

Limitations:
  • rounding errors are very common. currently I have an error of -1/+1 in <5% of the cases (error should not exceed -2/+2)
  • baseDam decimal place goes in the calculation, but is usually unknown
  • exact weapon speed can be tested, but needs to be rounded due to inaccuracies Server<->Client timings, so for the exact decimal place a rounding needs to be guessed
  • rounding of growthOffset is completely unknown, but due to the damage classification a rounding to or half of the style quantum is likely
User avatar
Yay
Contributor
 
Posts: 174
Joined: Mon May 21, 2012 9:06 pm

Re: StyleProcessor changes

Postby Yay » Fri Jul 24, 2015 3:25 pm

Ok, I added "Devastating" and "None" as translation for EN, FR, DE. I also updated the StyleProcessor that way ("Damage: None" instead of "Damage: No Bonus"). There is no functional difference to version 3, I just added the translation. I hope "Aucun" is the correct translation for "None" in French.
User avatar
Yay
Contributor
 
Posts: 174
Joined: Mon May 21, 2012 9:06 pm

Re: StyleProcessor changes

Postby Argo » Sun Jul 26, 2015 2:17 am

So I updated the StyleProcessor.cs to version 3. Only change is the delve and is a takeover of my findings regarding style quantum. I also had to update the translation file because devastating was missing. I do not know the exact translations in German ("Vernichtend" maybe) or French.
Vernichtend trifft den nagel auf den kopf
Möge Gott sein zwischen Dir und dem Leid, an allen dunklen und verlassenen Orten, die Du erreichen wirst.
Argo
Server Team
 
Posts: 1760
Joined: Thu Sep 18, 2008 6:21 pm
Location: Berlin, Germany

Re: StyleProcessor changes

Postby Leodagan » Sun Jul 26, 2015 11:56 am

Commited Work as it is from now

Revision 3514
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon


Return to “%s” DOL Code Contributions

Who is online

Users browsing this forum: No registered users and 1 guest