far cover correctly accounts for standard cover
Dependencies
- [2]
VHVL5HH4simplify far cover by starting at only the peek tile - [3]
JSCVVDFDremove commented code and excess tabs - [4]
UA2L2WYUuse correct config file - [5]
MPALURGPmaximum far cover is low cover malus - [6]
6GNTEDE4use real LOS functions to determine Far Cover (automatically accounts for roof edge protection) - [7]
X4IR7ZAHbaseline from krumiro's [WotC] RW Realistic Aiming Angles
Change contents
- replacement in RWRealisticAimingAnglesHL/Src/RWRealisticAimingAnglesHL/Classes/Override_X2AbilityToHitCalc_StandardAim.uc at line 528
local int FarCover;local int ExistingCoverHeight, TargetHeight, FarCover; - replacement in RWRealisticAimingAnglesHL/Src/RWRealisticAimingAnglesHL/Classes/Override_X2AbilityToHitCalc_StandardAim.uc at line 785
for (i=0; i<=TargetState.UnitHeight; i++)if (VisInfo.TargetCover == CT_None){ExistingCoverHeight = 0;TargetHeight = TargetState.UnitHeight;}else if (VisInfo.TargetCover == CT_MidLevel){ExistingCoverHeight = 1;TargetHeight = TargetState.UnitHeight - 1; // Crouched behind low cover}else{ExistingCoverHeight = 2;TargetHeight = TargetState.UnitHeight;}for (i=ExistingCoverHeight; i<=TargetHeight; i++) - replacement in RWRealisticAimingAnglesHL/Src/RWRealisticAimingAnglesHL/Classes/Override_X2AbilityToHitCalc_StandardAim.uc at line 804[3.837]→[3.1874:2002](∅→∅),[3.2002]→[3.973:984](∅→∅),[3.973]→[3.973:984](∅→∅),[3.984]→[3.2003:2097](∅→∅),[3.2097]→[2.165:299](∅→∅),[2.299]→[3.2097:2122](∅→∅),[3.2097]→[3.2097:2122](∅→∅),[3.2122]→[3.1079:1090](∅→∅),[3.1079]→[3.1079:1090](∅→∅)
if ((i == 0 && VisInfo.TargetCover == CT_None) || ((i == 1 || i == 2) && VisInfo.TargetCover != CT_Standing) || i > 2){`log("LOS blocked by far cover:"@i@","@VisInfo.TargetCover, true, 'XCom_HitRolls');`log("Blocking tile:"@RayTrace.BlockedTile.X@","@RayTrace.BlockedTile.Y@","@RayTrace.BlockedTile.Z, true, 'XCom_HitRolls');FarCover += 1;}`log("LOS blocked by far cover:"@i@","@VisInfo.TargetCover, true, 'XCom_HitRolls');`log("Blocking tile:"@RayTrace.BlockedTile.X@","@RayTrace.BlockedTile.Y@","@RayTrace.BlockedTile.Z, true, 'XCom_HitRolls');FarCover += 1; - replacement in RWRealisticAimingAnglesHL/Src/RWRealisticAimingAnglesHL/Classes/Override_X2AbilityToHitCalc_StandardAim.uc at line 815
for (i=0; i<=TargetState.UnitHeight; i++)for (i=0; i<=TargetState.UnitHeight; i++) // Target not crouched when peeking - edit in RWRealisticAimingAnglesHL/Src/RWRealisticAimingAnglesHL/Classes/Override_X2AbilityToHitCalc_StandardAim.uc at line 820
`log("Blocking tile:"@RayTrace.BlockedTile.X@","@RayTrace.BlockedTile.Y@","@RayTrace.BlockedTile.Z, true, 'XCom_HitRolls');