User:RotatcepS/plans
I am calculating observed point blank damage at ramp up using an offset to get the observed achievable values, lower than raw calculation. "offset" is a value usually based on shounic's video on projectile origins (this may not be a valid source to the wiki rules)... it's an offset such that 32 means no spacing (true point blank) and 0 means 32 spacing. Many are 23.5 offset, so 6.5 spacing. video doesn't talk about hitscan weapons so I made up numbers that meet the observations. Mostly 25 offset (7 spacing). The point is, you can't shoot somebody from inside of them - collision boxes keep you more than 0 HU apart.
Spread
- shotgun ctx File says 0.0675, not 0.0625 like discussion page said (shotguns, scatterguns except backscatter x1.20 & shortstop 0.04)
- Ratio (e.g. 30:1) is documented in e.g. shotgun as: 30 "Hammer Units away from target" : 1 "Hammer Units of spread on target"
- I do not know the origin if this measure or representation. "spread on target" I interpret as distance from center.
- Therefore we are describing a right triangle of length 30, width 1. This rotates around the aim center to describe a cone of diameter 2.
- If we assume spread is a radian angle of that right triangle, we should expect tan(angle) = 1/30 or 30 = 1/(tan(angle)), but instead, 1/(tan(0.0675)) = 14.79
- If we instead assume spread is the radian angle of the entire cone, only half the angle applies to the right triangle that describes the ratio. 1/(tan(0.0675/2)) = 29.618 which provides our rounded 30:1
- So spread accuracy ratio is "round(1/tan(angle/2)) : 1" (range for which 1 unit of spread occurs)
- HOWEVER: https://imgur.com/a/ZmWeqe9 is somebody making up a calculation that gets the 30:1 using a factor of 1.9, but it is based on the incorrect value 0.0625 (0.0675 would give 28:1), and is just reverse engineering from the values on the wiki, and it also refers to https://www.reddit.com/r/truetf2/comments/1gyb8g/comment/cap37c1 a well-known link based on the ctx files, but also based on code leaks.
- pistol 50 (vs. 48) ctx says .04 (Blobbles introduced 48 "pellet spread" based ratio of 0.04 to 0.0625, not 0.0675 https://wiki.teamfortress.com/w/index.php?title=Pistol&diff=3025144&oldid=2991362 )
- shotgun & scattergun 30 ctx says .0675
- shortstop 50 like pistol ctx says .04
- backscatter 25 (vs 24) ctx .0675 * items_game.txt 1.20 = 0.081
- minigun 25 (vs 24) ctx says .08 (Void1702 introduced 24 "pellet spread" based on bad math assumptions https://wiki.teamfortress.com/w/index.php?title=Minigun&diff=3291297&oldid=3285493) etc: https://wiki.teamfortress.com/wiki/Special:Contributions/Void1702 ... he reverted his own edit of huo-long for some reason?
- tomislav 31 (vs 30) ctx .08 * items_game.txt 0.8 scale = 0.064 (Void1702 introduced 30 "pellet spread" based on bad math assumptions https://wiki.teamfortress.com/w/index.php?title=Tomislav&diff=next&oldid=3291311)
- smg 80 (vs 76) ctx .025 (Void1702 introduced 76 "pellet spread" based on bad math assumptions https://wiki.teamfortress.com/w/index.php?title=SMG&diff=3291314&oldid=3247298) etc: https://wiki.teamfortress.com/wiki/Special:Contributions/Void1702
- revolver 80 (vs 76) ctx .025 (Void1702 introduced 76 "pellet spread" based on bad math assumptions https://wiki.teamfortress.com/w/index.php?title=Revolver&diff=3291321&oldid=3247324) etc: https://wiki.teamfortress.com/wiki/Special:Contributions/Void1702
- side note: I suspect the controversial edit from 30:1 to 15:1 was the editor considering "1" as the diameter of spread instead of the distance from center
specifically:
- TF_WEAPON_PISTOL in items_game.txt has Item_Class tf_weapon_pistol.ctx - Spread: 0.04; round(1/tan(spread/2))=50
- TF_WEAPON_PISTOL_SCOUT in items_game.txt has Item_Class tf_weapon_pistol.ctx - Spread: 0.04; round(1/tan(spread/2))=50
- The Winger in items_game.txt has Item_Class tf_weapon_handgun_scout_secondary.ctx - Spread: 0.04; round(1/tan(spread/2))=50
- Pretty Boy's Pocket Pistol in items_game.txt has Item_Class tf_weapon_handgun_scout_secondary.ctx - Spread: 0.04; round(1/tan(spread/2))=50
- TF_WEAPON_SHOTGUN_PRIMARY in items_game.txt has Item_Class tf_weapon_shotgun_primary.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- The Reserve Shooter in items_game.txt has Item_Class tf_weapon_shotgun_primary.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- Panic Attack Shotgun in items_game.txt has Item_Class tf_weapon_shotgun_primary.ctx - Spread: 0.0675; and mult_spread_scales_consecutive: mult_spread_scales_consecutive=1; round(1/tan(spread/2))=30 first shot
- The Family Business in items_game.txt has Item_Class tf_weapon_shotgun_primary.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- The Frontier Justice in items_game.txt has Item_Class tf_weapon_sentry_revenge.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- The Widowmaker in items_game.txt has Item_Class tf_weapon_shotgun_primary.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- TF_WEAPON_SCATTERGUN in items_game.txt has Item_Class tf_weapon_scattergun.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- The Force-a-Nature in items_game.txt has Item_Class tf_weapon_scattergun.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- The Shortstop in items_game.txt has Item_Class tf_weapon_handgun_scout_primary.ctx - Spread: 0.04; round(1/tan(spread/2))=50
- The Soda Popper in items_game.txt has Item_Class tf_weapon_soda_popper.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- Baby Face's Blaster in items_game.txt has Item_Class tf_weapon_pep_brawler_blaster.ctx - Spread: 0.0675; round(1/tan(spread/2))=30
- The Back Scatter in items_game.txt has Item_Class tf_weapon_scattergun.ctx - Spread: 0.0675; and spread penalty: mult_spread_scale=1.20; so spread=0.081; round(1/tan(spread/2))=25
- TF_WEAPON_MINIGUN in items_game.txt has Item_Class tf_weapon_minigun.ctx - Spread: 0.08; round(1/tan(spread/2))=25
- Natascha in items_game.txt has Item_Class tf_weapon_minigun.ctx - Spread: 0.08; round(1/tan(spread/2))=25
- The Brass Beast in items_game.txt has Item_Class tf_weapon_minigun.ctx - Spread: 0.08; round(1/tan(spread/2))=25
- Tomislav in items_game.txt has Item_Class tf_weapon_minigun.ctx - Spread: 0.08; and weapon spread bonus: mult_spread_scale=0.8; so spread=0.064; round(1/tan(spread/2))=31
- The Huo Long Heatmaker in items_game.txt has Item_Class tf_weapon_minigun.ctx - Spread: 0.08; round(1/tan(spread/2))=25
- TF_WEAPON_SMG in items_game.txt has Item_Class tf_weapon_smg.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- The Cleaner's Carbine in items_game.txt has Item_Class tf_weapon_charged_smg.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- TF_WEAPON_REVOLVER in items_game.txt has Item_Class tf_weapon_revolver.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- The Ambassador in items_game.txt has Item_Class tf_weapon_revolver.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- L'Etranger in items_game.txt has Item_Class tf_weapon_revolver.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- The Enforcer in items_game.txt has Item_Class tf_weapon_revolver.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- The Diamondback in items_game.txt has Item_Class tf_weapon_revolver.ctx - Spread: 0.025; round(1/tan(spread/2))=80
- TODO Wiki has theoretical crit & minicrit values of 113 & 51 on the low end when I've observed practical ones of 115 & 52
- should point blanks be theoretical or achievable?
- evidence 38: https://youtu.be/ivCOJvt5YDc?t=33 minicrit 52: https://youtu.be/ivCOJvt5YDc?t=68 crit 115 https://youtu.be/ivCOJvt5YDc?t=89
- why? I believe it's ramped 50% at 0 hang time, but minimum hang time at point blank results in 38.17..38.4 damage instead of 75/2=37.5 (all round to 38). 38.4*1.35=51.84 (rounds to 52); 38.4*3=115.2 (rounds to 115)
- DONE -RescueRanger wiki mini-crit max of 72 is nonsense (obs and calc agree to 81)-
- DONE -evidence: 60: https://youtu.be/Mx4sESdVNHs?t=9 minicrit (60*1.35=81.0) 81: https://youtu.be/Mx4sESdVNHs?t=39 crit 120: https://youtu.be/Mx4sESdVNHs?t=56-
Pistol (engineer)
- pistol 50 (vs. 48) ctx says .04
Also, pistol effective close is 149.3% because you can't get to actual point blank, thus the damage is 22 observed, not 23 that 150% would give you.
- 7 damage but point blank ~150% ramp up for 10 damage, max range is still 125% ramp up for 9 damage
- robot arm.ctx or whatever it is, extracted with GCFScape, decoded with VICE, shows Damage: 7 and Range:256. If you believe this, give point blank 150% ramp up (but, like the pistol, achievable is only 149.3%), and believe the max range (effective ramp is 125%), the values match what I've observed: 10 point blank (14 minicrit), 9 at range. I observed 13 minicrit at range, calc says it should be 12 - I'll need to do more tests to see if I can observe a 12.
Pistol (scout)
- pistol 50 (vs. 48) ctx says .04
Also, pistol effective close is 149.3% because you can't get to actual point blank, thus the damage is 22 observed, not 23 that 150% would give you.
- pistol 50 (vs. 48) ctx says .04
- Wiki 1.10 reload was based on scout pistol that since was proven as 1.005
- pistol 50 (vs. 48) ctx says .04
- Wiki 1.10 reload was based on scout pistol that since was proven as 1.005
Also, pistol effective close is 149.3% because you can't get to actual point blank, thus the damage is 22 observed, not 23 that 150% would give you.
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
Thus, RL effective close is 124.6% because you can't get to actual point blank, thus the damage is 112 observed, not 113 that 125% would give you. (and minicrit close is 151 observed vs 152 at 125%)
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
- Wiki base rounded down from 112.5, game conditions on similar cases seem to round up...right?
- radius on wiki is rounded - is that editor simplifying or is that how the game uses it?
Thus, direct hit effective close is 124.6% because you can't get to actual point blank, thus the damage is 149 observed, not 141 that 125% would give you. (and minicrit close is 189 observed vs 190 at 125%)
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
Thus, RL effective close is 124.6% because you can't get to actual point blank, thus the damage is 112 observed, not 113 that 125% would give you. (and minicrit close is 151 observed vs 152 at 125%)
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
Thus, RL effective close is 124.6% because you can't get to actual point blank, thus the damage is 112 observed, not 113 that 125% would give you. (and minicrit close is 151 observed vs 152 at 125%) Also, Wiki seems unaware that the Crit-to-minicrit downgrade actually gives worse numbers than real minicrits at close range per my observations (clearly a simple multiplier instead of a crit-type-changer)
- DONE evidence: mc close 151, crit close 122 https://youtu.be/9gveiR7brfM?t=76 (but that includes the issue of close is not 0 range for actual minicrit)
- DONE "are converted to mini-crits instead. " The conversion ignores ramp-up the same way crits do, so at close range it does less damage than normal mini-crits.
- DONE tooltip: 122 max when crit boosted.
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
Thus, RL effective close is 124.6% because you can't get to actual point blank, thus the damage is 112 observed, not 113 that 125% would give you. (and minicrit close is 151 observed vs 152 at 125%) Also, spread 36:1 based on 3 degrees translating to a spread of 0.05236
- **CLOSE RANGE REQUIRES OFFSET - 125% works with all when using offset=23.5 (documented value) but NOT with 32 (no min separation).
- base 76.5 wiki rounds down, also wiki-ramp-up & point-blank don't agree, nor do wiki base and medium
- TODO my calc (now) & my obs & point blank wiki of 95; wiki Ramp as 96 (my calc USED to do that too)
Thus, air strike effective close is 124.6% because you can't get to actual point blank, thus the damage is 95 observed, not 96 that 125% would give you.
- TODO wiki all pellets far 30, but calc is 32, need evidence (Wiki Long range all pellets is as if 50%, not 52.8%??)
- seen at range (https://youtu.be/Hz3GmGv6YKg): 3, 6, 10, 13, 16,(19 not seen), 22, (not seen: 25, 29, 32);
- this is consistent with (6*52.8%=)3.168/pellet: 3.168, 6.336, 9.504, 12.672, 15.84, (19.008), 22.176, (25.344, 28.512, 31.68);
- seen at range minicrit (6*1.35=8.1)8, (16.2)16, (24.3)24, (32.4)32, (40.5)41, (48.6)49, (not seen: 56.7=57, 64.8=65, 72.9=73, 81);
- seen crit (6*3=)18, 36(18x2), 54(x3), 72(x4), 90(x5), 108(x6), 126(x7), 144(x8), 162(x9), 180(x10)
- CLOSE RANGE REQUIRES OFFSET or <150% (mc obs don't match calc at higher pellets) (149.3% works ... based on my interp of shounic offsets)
- seen at pb: 9, 18, 27, ... 90;
- seen at pb minicrit: 12(12.15), 24(24.3), 36(36.45), (not seen 48.6), 60(NO MATCH 5*9*1.35=60.75), ... 121(NO MATCH 10*9*1.35=121.5)
- wiki 0.51 reload more, but derivatives all use 0.50
- (shotgun) TODO wiki all pellets far 30, but calc is 32, need evidence (Wiki Long range all pellets is as if 50%, not 52.8%??)
- (shotgun) CLOSE RANGE REQUIRES OFFSET or <150% (mc obs don't match calc at higher pellets) (149.3% works ... based on my interp of shounic offsets)
- (shotgun) wiki 0.51 reload more, but derivatives all use 0.50
- seen at range (https://youtu.be/iGeJKzW4UfQ): 3, 6, 10?, 13, 16?
- seen minicrit at range: 8, 16, 24, 32, 41
- wiki far 36 should be 38 - (shotgun) TODO wiki all pellets far 30, but calc is 32, need evidence (Wiki Long range all pellets is as if 50%, not 52.8%??)
- (shotgun) CLOSE RANGE REQUIRES OFFSET or <150% (mc obs don't match calc at higher pellets) (149.3% works ... based on my interp of shounic offsets)
- (shotgun) wiki 0.51 reload more, but derivatives all use 0.50
- seen at range (https://youtu.be/pRKZZ1z7nH4): 3, 5? (no random spread)
- seen minicrit at range (https://youtu.be/pRKZZ1z7nH4?t=57): 6, 13 (no random spread)
- seen crit at range: 14 29 43
- wiki far 26 should be 27 - (shotgun) TODO wiki all pellets far 30, but calc is 32, need evidence (Wiki Long range all pellets is as if 50%, not 52.8%??)
- (shotgun) CLOSE RANGE REQUIRES OFFSET or <150% (mc obs don't match calc at higher pellets) (149.3% works ... based on my interp of shounic offsets)
- obs/wiki agree close is 76, not (60*85%=51) 51*150%=76.5 rounds to 77. That does match 'Round To Even' rule, however.
- (shotgun) wiki 0.51 reload more, but derivatives all use 0.50
- seen at range (https://youtu.be/ahJJIKJl-6M): 3, 5, 8, 11? 13? 23?
- seen minicrit at range: (https://youtu.be/ahJJIKJl-6M?t=37): 7, 14, 21, 28, 34
- seen crit: 15, 31, 46, 61, 77, 122
- 3/pellet long range should be 3.168 like other shotguns
- (shotgun) TODO wiki all pellets far 30, but calc is 32, need evidence (Wiki Long range all pellets is as if 50%, not 52.8%??)
- (shotgun) CLOSE RANGE REQUIRES OFFSET or <150% (mc obs don't match calc at higher pellets) (149.3% works ... based on my interp of shounic offsets)
- (shotgun) wiki 0.51 reload more, but derivatives all use 0.50
- seen at range (https://youtu.be/a2eT-rfm5rI): 3, 10, 13, 22 (hard to see)
- seen minicrit at range: 8, 16, 24, 32, (not seen:41), 49 (not seen: 57, 65, 73, 81)
- 3/pellet long range should be 3.168 like other shotguns
- (shotgun) TODO wiki all pellets far 30, but calc is 32, need evidence (Wiki Long range all pellets is as if 50%, not 52.8%??)
- (shotgun) CLOSE RANGE REQUIRES OFFSET or <150% (mc obs don't match calc at higher pellets) (149.3% works ... based on my interp of shounic offsets)
- (shotgun) wiki 0.51 reload more, but derivatives all use 0.50
- seen at range (https://youtu.be/vKrbbHCkI6I): 3, 6, 10, 13, 16, (not seen: 19, 22, 25, 29, 32);
- vs target (https://youtu.be/Mi_MPZ4BdLk): 3, 7, 10, 14, 17?, 21?, 24?
- seen minicrit at range (https://youtu.be/vKrbbHCkI6I?t=35) 8, 16, 24, 32, 41, 49, (not seen: 56.7=57), 65, (not seen: 72.9=73, 81);
- TODO (from AShotgun) wiki all pellets far 30, but calc is 32, need evidence. 30 implies 50% fall-off
- **CLOSE RANGE REQUIRES OFFSET (32 doesn't match)
- wiki/calc close 105, but obs 104; minicrit calc 142 but obs/'wiki' 141
- obs close 10-104 matches my offsets and not wiki
Specifically, Scattergun effective close is 174.0% because you can't get to actual point blank, thus the damage is 10-104 observed, not 11-105 that 175% would give you. (and minicrit close is 141 observed vs 142 at 175%)
- TODO wiki all pellets far 32, but calc is 34, need evidence
- **CLOSE RANGE REQUIRES OFFSET (32 doesn't match)
- minicrit 'wiki'/calc close 153, but obs 152
Specifically, FaN effective close is 174.0% so minicrit close is 152 observed vs 153 at 175%
- TODO wiki all pellets far 24, but calc is 25, need evidence
- Close range works with 30, 25 (scatter current default), also most anything else (23.5-32)
- Wiki claims "has approximately 40% less pellet spread" although it's not listed in stats
Specifically, peppergun .ctx (GCFscape extract, VICE decode) lists Spread 0.04 (same as pistol), pellets 4, damage 12
- wiki/calc close 105, but obs 104; minicrit calc/'wiki' 142 but obs 141
- **CLOSE RANGE REQUIRES OFFSET (32 doesn't match)
Specifically, Scattergun effective close is 174.0% because you can't get to actual point blank, thus the damage is 10-104 observed, not 11-105 that 175% would give you. (and minicrit close is 141 observed vs 142 at 175%)
- wiki/calc close 105, but obs 104; minicrit calc/'wiki' 142 but obs 141
- **CLOSE RANGE REQUIRES OFFSET (32 doesn't match)
Specifically, Scattergun effective close is 174.0% because you can't get to actual point blank, thus the damage is 10-104 observed, not 11-105 that 175% would give you. (and minicrit close is 141 observed vs 142 at 175%)
- backscatter 25 (vs 24) ctx .0675 * items_game.txt 1.20 = 0.081
- wiki/calc close 105, but obs 104; minicrit calc/'wiki' 142 but obs 141
- **CLOSE RANGE REQUIRES OFFSET (32 doesn't match)
Specifically, Scattergun effective close is 174.0% because you can't get to actual point blank, thus the damage is 10-104 observed, not 11-105 that 175% would give you. (and minicrit close is 141 observed vs 142 at 175%)
- TODO I could use max range 549 to get observed 24 (72 burning) at max range vs. 52.8% long range
- max range 592 gets wiki's 23 (71 burning) at max range vs. 52.8% long range; but wiki claims 526 max
- obs falloff 24 (calc/wiki 23); minicrit obs/wiki close 40 (calc 41); wiki mc burning 100-121 (calc 101-122)
- Interestingly it's 'based on' a 90dmg rocket...which is how much it gets on burning point blank hits
to match wiki (23 far, 69 far on fire): 600 or 592 max range, using either 52.8% or 50% long range to match obs (24 far, 72 far on fire): 548 max range, 50% long range. 547 works, too. (to use wiki's range of 526, not even 0% long range works for wiki or observed (except it works for not-on-fire as match of observed)) turns out to get obs numbers with long of 0 to 52.8 has to be max range of 530-562 turns out to get wiki numbers with long of 0 to 52.8 has to be max range of 550-606
burning targets: My observed had 72 far, 106 minicrit far. I should do more testing - likely 106 minicrit is just 1 minicrit afterburn (5) combined with the calculated 101 damage. Need more testing I guess.
- Needs more obs. ranged fuse in wiki, obs don't think so. obs: maybe falloff starts post-long range (time-based)? crit truly affected by range?
- Wiki says radius 189 - but same date this weapon was added others reduced from 159 to 146