Difference between revisions of "User:RotatcepS/tests/Damage"
m (bug fix for pellets with experiment) |
(support Xoffset, default to 23.5, based on shounic video of entity spawn positions to modify point blank closest value.) |
||
Line 64: | Line 64: | ||
| ramp up % = {{#expr:{{{H|1}}}*100round2}} | | ramp up % = {{#expr:{{{H|1}}}*100round2}} | ||
| ramp up | | ramp up | ||
− | | 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))) --> | + | | 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}}}*(1+(({{{H|1}}}-1)*( | + | | 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}}}*(1+(({{{MH|{{{H|1}}}}}}-1)*( | + | | 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}}}*(1+(({{{CH|1.0}}}-1)*( | + | | 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}}}}} | ||
Revision as of 17:47, 8 January 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