public override void CombatStarts() { ClusterChanceNeverMultiplyHead = CombatConstants.ToHit.ClusterChanceNeverMultiplyHead; ClusterChanceOriginalLocationMultiplier = CombatConstants.ToHit.ClusterChanceOriginalLocationMultiplier; CalledShotBonusMultiplier = CombatConstants.HitTables.CalledShotBonusMultiplier; if (Settings.FixHitDistribution) { foreach (AttackDirection direction in Enum.GetValues(typeof(AttackDirection))) { if (direction == AttackDirection.None) { continue; } if (direction != AttackDirection.ToProne) { Dictionary <VehicleChassisLocations, int> hitTableV = Combat.HitLocation.GetVehicleHitTable(direction); ScaledVehicleHitTables.Add(hitTableV, ScaleHitTable(hitTableV)); } Dictionary <ArmorLocation, int> hitTableM = Combat.HitLocation.GetMechHitTable(direction); ScaledMechHitTables.Add(hitTableM, ScaleHitTable(hitTableM)); if (direction != AttackDirection.FromArtillery) { foreach (ArmorLocation armor in hitTableM.Keys) { if (hitTableM[armor] <= 0) { continue; } Dictionary <ArmorLocation, int> hitTableC = CombatConstants.GetMechClusterTable(armor, direction); ScaledMechHitTables.Add(hitTableC, ScaleHitTable(hitTableC)); } } } } }
public override void CombatEnds() { CurrentHitDirection = AttackDirection.None; ScaledMechHitTables?.Clear(); ScaledVehicleHitTables?.Clear(); }