Difference between revisions of "User:RotatcepS/tests/Damage"
(bug fix: not sure why I had floor for close values instead of round0) |
m (bug fix) |
||
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{#switch: {{lc:{{{type|text}}}}} | {{#switch: {{lc:{{{type|text}}}}} | ||
+ | <!-- TODO: use B for building variants multiplier. | ||
+ | TODO: add a way to identify no crits, no minicrits --> | ||
| dps = {{#expr:({{{D|0}}}*(1/{{{T}}}))round2}} {{#ifexpr:{{{E|0}}}+0>0| + splash}} | | dps = {{#expr:({{{D|0}}}*(1/{{{T}}}))round2}} {{#ifexpr:{{{E|0}}}+0>0| + splash}} | ||
Line 10: | Line 12: | ||
| time-to-target | | time-to-target | ||
| ttt = {{#expr:512/{{{V}}}}} | | ttt = {{#expr:512/{{{V}}}}} | ||
− | | accuracy = {{#ifexpr:{{{recovery|0}}}>0|{{#expr:({{User:RotatcepS/tests/AccurateRange|C={{{S|0}}}|V=0|E=0}}/512*100)round0}}% ({{tooltip|recoil spread|starts with one accurate shot with {{{recovery}}} {{common strings|seconds}} recovery}})|{{#ifexpr:{{{S|0}}}>0|{{#expr:({{User:RotatcepS/tests/AccurateRange|C={{{S|0}}}|V=0|E=0}}/512*100)round0}}% ({{tooltip|shot spread|one accurate {{{pellet|pellet}}} of {{{F}}} {{{pellet|pellet}}}s per shot}})|{{#ifexpr:{{{E|0}}}>0|{{#expr:(( ((49/2)/300) *{{{V|0}}})/512*100)round0}}% ({{tooltip|projectile|{{{V}}}{{common strings|Hus}}}})<br/>{{#expr:({{User:RotatcepS/tests/AccurateRange|C=0|V={{{V|0}}}|E={{{E|1.0}}}}}/512*100)round0}}% (projectile {{tooltip|splash|{{#expr:{{{E|1}}}*146}}Hu radius}})|{{#ifexpr:{{{V|0}}}>0|{{#expr:(( ((49/2)/300) *{{{V|0}}})/512*100)round0}}% ({{tooltip|projectile|{{{V}}}{{common strings|Hus}}}})|{{#ifexpr:{{{ | + | | accuracy = {{#ifexpr:{{{recovery|0}}}+0>0|{{#expr:({{User:RotatcepS/tests/AccurateRange|C={{{S|0}}}|V=0|E=0}}/512*100)round0}}% ({{tooltip|recoil spread|starts with one accurate shot with {{{recovery}}} {{common strings|seconds}} recovery}})|{{#ifexpr:{{{S|0}}}+0>0|{{#expr:({{User:RotatcepS/tests/AccurateRange|C={{{S|0}}}|V=0|E=0}}/512*100)round0}}% ({{tooltip|shot spread|one accurate {{{pellet|pellet}}} of {{{F}}} {{{pellet|pellet}}}s per shot}})|{{#ifexpr:{{{E|0}}}+0>0 and {{{V|0}}}+0>0|{{#expr:(( ((49/2)/300) *({{{V|0}}}+0))/512*100)round0}}% ({{tooltip|projectile|{{{V}}}{{common strings|Hus}}}})<br/>{{#expr:({{User:RotatcepS/tests/AccurateRange|C=0|V={{{V|0}}}|E={{{E|1.0}}}}}/512*100)round0}}% (projectile {{tooltip|splash|{{#expr:{{{E|1}}}*146}}Hu radius}})|{{#ifexpr:{{{V|0}}}+0>0|{{#expr:(( ((49/2)/300) *{{{V|0}}})/512*100)round0}}% ({{tooltip|projectile|{{{V}}}{{common strings|Hus}}}})|{{#ifexpr:{{{maxRange|0}}}+0=0|infinite|melee}}}}}}}}}} |
<!-- Another type of accuracy text: | <!-- Another type of accuracy text: | ||
accuracy: extra-fast hitscan, reaches point-blank range (melee) | accuracy: extra-fast hitscan, reaches point-blank range (melee) | ||
Line 50: | Line 52: | ||
| fragments = {{{F|0}}} | | fragments = {{{F|0}}} | ||
| velocity | | velocity | ||
− | | speed = {{{V| | + | | speed = {{{V|}}} |
| radius | | radius | ||
| splash-percent = {{{E|0}}} | | splash-percent = {{{E|0}}} | ||
Line 57: | Line 59: | ||
| spread-value = {{{S|0}}} | | spread-value = {{{S|0}}} | ||
| recovery = {{{recovery|0}}} | | recovery = {{{recovery|0}}} | ||
− | | maxrange = {{{maxRange| | + | | maxrange = {{{maxRange|}}} |
+ | | xoffset = {{{Xoffset|23.5}}} | ||
| rampup = {{{H|1}}} | | rampup = {{{H|1}}} | ||
Line 63: | Line 66: | ||
| ramp up | | ramp up | ||
| close-base = {{#expr:{{{D|0}}}*{{{H|1}}}}} | | close-base = {{#expr:{{{D|0}}}*{{{H|1}}}}} | ||
+ | <!-- D*H, but accounting for hitbox separation try (1+(({{{H|1}}}-1)*(508/512))) (1+(({{{MH|{{{H|1}}}}}}-1)*(508/512))) (1+(({{{CH|1.0}}}-1)*(508/512))) | ||
+ | if we use firing x point as a parameter, replace 508/512 with (512-(32-Xoffset))/512 - default Xoffset to something for bullets like 28 (which would result in 508)... but why not use 23.5 like so many other weapons. (512-(32-{{{Xoffset|23.5}}}))/512 | ||
+ | |||
+ | (1+(({{{H|1}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))) (1+(({{{MH|{{{H|1}}}}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))) (1+(({{{CH|1.0}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))) | ||
+ | |||
+ | I believe distance would be spawn point vs. target impact point, spawn points vary for projectiles: | ||
+ | https://youtu.be/UFtZMIWt0WI?t=37 | ||
+ | original, rocket launchers & flare gun, energy weapons (including cm5k), bolts(including grapple) spawn (from eyes) 23.5x | ||
+ | |||
+ | While trigonometry says all coordinates matter for measuring distance, for our purposes x position, since we're firing forward, is the only one that makes a significant difference for point blank. (Eye y position varies by class, but I assume x and z are the same for all.) | ||
+ | Entity movement hitbox is 32x32y, so we will assume 32x separation between two enemy centers at "point blank" minus the x value of entity spawn. This is probably a bad assumption, but it's better than assuming a distance of 0 always. | ||
+ | |||
+ | Bullet weapons likely also would include the target body part's distance adding more distance. | ||
+ | |||
+ | --> | ||
| point blank | | point blank | ||
− | | close = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:({{{D|0}}}/{{{F}}}*{{{H|1}}})round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:({{{D|0}}}*{{{H|1}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:({{{D|0}}}*{{{H|1}}})round0}} | + | | close = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:({{{D|0}}}/{{{F}}}*(1+(({{{H|1}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))))round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:({{{D|0}}}*(1+(({{{H|1}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512)))*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:({{{D|0}}}*(1+(({{{H|1}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))))round0}} |
| fragment-close = {{#expr:{{{D|0}}}/{{{F}}}*{{{H|1}}}}} | | fragment-close = {{#expr:{{{D|0}}}/{{{F}}}*{{{H|1}}}}} | ||
| close-minicrit-base = {{#expr:1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}}}} | | close-minicrit-base = {{#expr:1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}}}} | ||
− | | close-minicrit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:(1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}}/{{{F}}})round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}})round0}} | + | | close-minicrit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:(1.35*{{{D|0}}}*(1+(({{{MH|{{{H|1}}}}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512)))/{{{F}}})round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(1.35*{{{D|0}}}*(1+(({{{MH|{{{H|1}}}}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512)))*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(1.35*{{{D|0}}}*(1+(({{{MH|{{{H|1}}}}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))))round0}} |
| fragment-close-minicrit = {{#expr:1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}}/{{{F}}}}} | | fragment-close-minicrit = {{#expr:1.35*{{{D|0}}}*{{{MH|{{{H|1}}}}}}/{{{F}}}}} | ||
| close-crit-base = {{#expr:3.0*{{{D|0}}}*{{{CH|1.0}}}}} | | close-crit-base = {{#expr:3.0*{{{D|0}}}*{{{CH|1.0}}}}} | ||
− | | close-crit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:(3.0*{{{D|0}}}*{{{CH|1.0}}}/{{{F}}})round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(3.0*{{{D|0}}}*{{{CH|1.0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(3.0*{{{D|0}}}*{{{CH|1.0}}})round0}} | + | | close-crit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:(3.0*{{{D|0}}}*(1+(({{{CH|1.0}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512)))/{{{F}}})round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(3.0*{{{D|0}}}*(1+(({{{CH|1.0}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512)))*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(3.0*{{{D|0}}}*(1+(({{{CH|1.0}}}-1)*((512-(32-{{{Xoffset|23.5}}}))/512))))round0}} |
| fragment-close-crit = {{#expr:3.0*{{{D|0}}}*{{{CH|1.0}}}/{{{F}}}}} | | fragment-close-crit = {{#expr:3.0*{{{D|0}}}*{{{CH|1.0}}}/{{{F}}}}} | ||
Line 80: | Line 98: | ||
| mh = {{{MH|{{{H|1}}}}}} | | mh = {{{MH|{{{H|1}}}}}} | ||
| ml = {{{ML|1.0}}} | | ml = {{{ML|1.0}}} | ||
+ | | b = {{{B|1.0}}} | ||
| rampdown = {{{L|1}}} | | rampdown = {{{L|1}}} | ||
Line 90: | Line 109: | ||
| far-minicrit-base = {{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}}} | | far-minicrit-base = {{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}}} | ||
− | | far-minicrit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(1.35*{{{D|0}}}*{{{ML|1.0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}round0}} | + | | far-minicrit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(1.35*{{{D|0}}}*{{{ML|1.0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(1.35*{{{D|0}}}*{{{ML|1.0}}})round0}} |
| fragment-far-minicrit-base | | fragment-far-minicrit-base | ||
| fragment-far-minicrit = {{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}/{{{F}}}}} | | fragment-far-minicrit = {{#expr:1.35*{{{D|0}}}*{{{ML|1.0}}}/{{{F}}}}} | ||
| far-crit-base = {{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}}} | | far-crit-base = {{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}}} | ||
− | | far-crit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(3.0*{{{D|0}}}*{{{CL|1.0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}round0}} | + | | far-crit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(3.0*{{{D|0}}}*{{{CL|1.0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(3.0*{{{D|0}}}*{{{CL|1.0}}})round0}} |
| fragment-far-crit-base | | fragment-far-crit-base | ||
| fragment-far-crit = {{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}/{{{F}}}}} | | fragment-far-crit = {{#expr:3.0*{{{D|0}}}*{{{CL|1.0}}}/{{{F}}}}} | ||
| minicrit-base = {{#expr:1.35*{{{D|0}}}}} | | minicrit-base = {{#expr:1.35*{{{D|0}}}}} | ||
− | | minicrit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:1.35*{{{D|0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(1.35*{{{D|0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:1.35*{{{D|0}}}round0}} | + | | minicrit = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:1.35*{{{D|0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(1.35*{{{D|0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(1.35*{{{D|0}}})round0}} |
| fragment-minicrit-base | | fragment-minicrit-base | ||
| fragment-minicrit = {{#expr:1.35*{{{D|0}}}/{{{F}}}}} | | fragment-minicrit = {{#expr:1.35*{{{D|0}}}/{{{F}}}}} | ||
| crit-base = {{#expr:3.0*{{{D|0}}}}} | | crit-base = {{#expr:3.0*{{{D|0}}}}} | ||
| crit | | crit | ||
− | | critical = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:3.0*{{{D|0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(3.0*{{{D|0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:3.0*{{{D|0}}}round0}} | + | | critical = {{#ifeq:{{{F|0}}}|0||{{tooltip|{{#expr:3.0*{{{D|0}}}/{{{F}}}round0}}|1 {{{pellet|pellet}}} of {{{F}}}}}-}}{{#ifexpr:{{{E|0}}}>0|{{tooltip|{{#expr:(3.0*{{{D|0}}}*{{{EL|.50}}})round0}}|splash ≥ {{#expr:{{{EL|.50}}}*100round0}}%}}-}}{{#expr:(3.0*{{{D|0}}})round0}} |
| fragment-crit-base | | fragment-crit-base | ||
| fragment-crit = {{#expr:3.0*{{{D|0}}}/{{{F}}}}} | | fragment-crit = {{#expr:3.0*{{{D|0}}}/{{{F}}}}} | ||
Line 115: | Line 134: | ||
| fragment-base | | fragment-base | ||
| fragment = {{#expr:{{{D|0}}}/{{{F}}}}} | | fragment = {{#expr:{{{D|0}}}/{{{F}}}}} | ||
− | | pellet = {{{pellet| | + | | pellet = {{{pellet|}}} |
}}<noinclude> | }}<noinclude> | ||
{{Documentation}}<!--until this is considered a template, apparently Documentation doesn't work-->{{User:RotatcepS/tests/Damage/doc}} | {{Documentation}}<!--until this is considered a template, apparently Documentation doesn't work-->{{User:RotatcepS/tests/Damage/doc}} | ||
</noinclude> | </noinclude> |
Latest revision as of 21:55, 14 August 2022
0
input parameters
- D: base damage input
- T: attack interval time in seconds
- V: velocity in HU/s
- E: Explosion radius percent of normal (1.0 = full radius)
- S: spread value of fragments or recoil
- F: number of fragments
- recovery: time in seconds to recover recoil accuracy
- maxRange: maximum reach of weapon in HU (e.g. flamethrower, medi gun)
- H: Close ramp up multiplier
- L: Far fall off multiplier
- MH: Close ramp up multiplier for Minicrits (defaults to H)
- ML: Far fall off multiplier for Minicrits (defaults to 1.0)
- CH: Close ramp up multiplier for crits (defaults to 1.0)
- ML: Far fall off multiplier for crits (defaults to 1.0)
type: output type selection (defaults to "text")
- dps = e.g. "100 + splash"
- spread-accuracy = accurate at x% range
- spread-ratio-old = spread of x:1
- spread-ratio
- spread-ratio-half = spread of x:1
- velocity-accuracy = closes range in x seconds, accurate at x% range
- explosive-accuracy = splash accurate at x% range
- time-to-target
- ttt (based on 512Hu)
- time
- interval = T
- bullet count
- pellet count
- fragments = F
- velocity
- speed = V
- radius
- splash-percent = E
- splash radius (based on 146HU)
- spread-value = S
- recovery = recovery
- maxrange = maxRange
- rampup = H
- ramp up % = H*100 rounded
- ramp up
- close-base = D*H
- point blank
- close = (one fragment-)(50% damage with splash tooltip-)damage
- fragment-close = one fragment
- close-minicrit-base = 1.35*MH
- close-minicrit = (one fragment-)(splash-)1.35*MH
- fragment-close-minicrit = one fragment*1.35*MH
- close-crit-base = 3*CH
- close-crit = (one fragment-)(splash-)3*CH
- fragment-close-crit = one fragment*3.0*CH
- h = H
- l = L
- ch = CH (1.0)
- cl = CL (1.0)
- mh = MH (H)
- ml = ML (1.0)
- rampdown = L
- fall off % = L*100 rounded
- fall off
- far-base = D*L
- long range
- far = (one fragment-)(splash-)damage
- fragment-far = one fragment*L
- far-minicrit-base = 1.35*ML
- far-minicrit = (one fragment-)(splash-)damage
- fragment-far-minicrit-base
- fragment-far-minicrit = one fragment*1.35*ML
- far-crit-base = 3*CL
- far-crit = (one fragment-)(splash-)damage
- fragment-far-crit-base
- fragment-far-crit = one fragment*3*CL
- minicrit-base = 1.35*
- minicrit = (one fragment-)(splash-)damage
- fragment-minicrit-base
- fragment-minicrit = one fragment*1.35*
- crit-base = 3*
- crit
- critical = (one fragment-)(splash-)damage
- fragment-crit-base
- fragment-crit = one fragment*3*
- medium-base
- base = D
- medium = (one fragment-)(splash-)damage
- text
- blank = (one fragment-)(splash-)damage with ramp up & fall off tooltip
- fragment-base
- fragment = one fragment
input parameters
- D: base damage input
- T: attack interval time in seconds
- V: velocity in HU/s
- E: Explosion radius percent of normal (1.0 = full radius)
- S: spread value of fragments or recoil
- F: number of fragments
- recovery: time in seconds to recover recoil accuracy
- maxRange: maximum reach of weapon in HU (e.g. flamethrower, medi gun)
- H: Close ramp up multiplier
- L: Far fall off multiplier
- MH: Close ramp up multiplier for Minicrits (defaults to H)
- ML: Far fall off multiplier for Minicrits (defaults to 1.0)
- CH: Close ramp up multiplier for crits (defaults to 1.0)
- ML: Far fall off multiplier for crits (defaults to 1.0)
type: output type selection (defaults to "text")
- dps = e.g. "100 + splash"
- spread-accuracy = accurate at x% range
- spread-ratio-old = spread of x:1
- spread-ratio
- spread-ratio-half = spread of x:1
- velocity-accuracy = closes range in x seconds, accurate at x% range
- explosive-accuracy = splash accurate at x% range
- time-to-target
- ttt (based on 512Hu)
- time
- interval = T
- bullet count
- pellet count
- fragments = F
- velocity
- speed = V
- radius
- splash-percent = E
- splash radius (based on 146HU)
- spread-value = S
- recovery = recovery
- maxrange = maxRange
- rampup = H
- ramp up % = H*100 rounded
- ramp up
- close-base = D*H
- point blank
- close = (one fragment-)(50% damage with splash tooltip-)damage
- fragment-close = one fragment
- close-minicrit-base = 1.35*MH
- close-minicrit = (one fragment-)(splash-)1.35*MH
- fragment-close-minicrit = one fragment*1.35*MH
- close-crit-base = 3*CH
- close-crit = (one fragment-)(splash-)3*CH
- fragment-close-crit = one fragment*3.0*CH
- h = H
- l = L
- ch = CH (1.0)
- cl = CL (1.0)
- mh = MH (H)
- ml = ML (1.0)
- rampdown = L
- fall off % = L*100 rounded
- fall off
- far-base = D*L
- long range
- far = (one fragment-)(splash-)damage
- fragment-far = one fragment*L
- far-minicrit-base = 1.35*ML
- far-minicrit = (one fragment-)(splash-)damage
- fragment-far-minicrit-base
- fragment-far-minicrit = one fragment*1.35*ML
- far-crit-base = 3*CL
- far-crit = (one fragment-)(splash-)damage
- fragment-far-crit-base
- fragment-far-crit = one fragment*3*CL
- minicrit-base = 1.35*
- minicrit = (one fragment-)(splash-)damage
- fragment-minicrit-base
- fragment-minicrit = one fragment*1.35*
- crit-base = 3*
- crit
- critical = (one fragment-)(splash-)damage
- fragment-crit-base
- fragment-crit = one fragment*3*
- medium-base
- base = D
- medium = (one fragment-)(splash-)damage
- text
- blank = (one fragment-)(splash-)damage with ramp up & fall off tooltip
- fragment-base
- fragment = one fragment