static void Postfix(AttackDirection from, bool log, ref Dictionary <VehicleChassisLocations, int> __result) { if (ModState.ForceDamageTable == DamageTable.PUNCH) { Mod.Log.Info?.Write($"Attack against VEHICLE will use the PUNCH damage table"); __result = new Dictionary <VehicleChassisLocations, int>(); if (from == AttackDirection.FromLeft) { __result.Add(VehicleChassisLocations.Turret, 40); __result.Add(VehicleChassisLocations.Left, 40); __result.Add(VehicleChassisLocations.Front, 8); __result.Add(VehicleChassisLocations.Rear, 8); } else if (from == AttackDirection.FromBack) { __result.Add(VehicleChassisLocations.Turret, 40); __result.Add(VehicleChassisLocations.Rear, 40); __result.Add(VehicleChassisLocations.Left, 8); __result.Add(VehicleChassisLocations.Right, 8); } else if (from == AttackDirection.FromRight) { __result.Add(VehicleChassisLocations.Turret, 40); __result.Add(VehicleChassisLocations.Right, 40); __result.Add(VehicleChassisLocations.Front, 8); __result.Add(VehicleChassisLocations.Rear, 8); } else if (from == AttackDirection.FromTop) { __result.Add(VehicleChassisLocations.Turret, 40); __result.Add(VehicleChassisLocations.Front, 8); __result.Add(VehicleChassisLocations.Left, 8); __result.Add(VehicleChassisLocations.Right, 8); } else { __result.Add(VehicleChassisLocations.Turret, 40); __result.Add(VehicleChassisLocations.Front, 40); __result.Add(VehicleChassisLocations.Left, 8); __result.Add(VehicleChassisLocations.Right, 8); } } else if (ModState.ForceDamageTable == DamageTable.KICK) { Mod.Log.Info?.Write($"Attack against VEHICLE will use the KICK damage table"); __result = new Dictionary <VehicleChassisLocations, int>(); if (from == AttackDirection.FromLeft) { __result.Add(VehicleChassisLocations.Turret, 4); __result.Add(VehicleChassisLocations.Left, 40); __result.Add(VehicleChassisLocations.Front, 8); __result.Add(VehicleChassisLocations.Rear, 8); } else if (from == AttackDirection.FromBack) { __result.Add(VehicleChassisLocations.Turret, 4); __result.Add(VehicleChassisLocations.Rear, 40); __result.Add(VehicleChassisLocations.Left, 8); __result.Add(VehicleChassisLocations.Right, 8); } else if (from == AttackDirection.FromRight) { __result.Add(VehicleChassisLocations.Turret, 4); __result.Add(VehicleChassisLocations.Right, 40); __result.Add(VehicleChassisLocations.Front, 8); __result.Add(VehicleChassisLocations.Rear, 8); } else if (from == AttackDirection.FromTop) { __result.Add(VehicleChassisLocations.Turret, 40); __result.Add(VehicleChassisLocations.Front, 8); __result.Add(VehicleChassisLocations.Left, 8); __result.Add(VehicleChassisLocations.Right, 8); } else { __result.Add(VehicleChassisLocations.Turret, 4); __result.Add(VehicleChassisLocations.Front, 40); __result.Add(VehicleChassisLocations.Left, 8); __result.Add(VehicleChassisLocations.Right, 8); } } else if (ModState.ForceDamageTable == DamageTable.SWARM) { Mod.Log.Info?.Write($"Attack against VEHICLE will use the SWARM damage table"); __result = new Dictionary <VehicleChassisLocations, int>(); __result.Add(AttackHelper.GetSwarmLocationForVehicle(), 100); //__result.Add(VehicleChassisLocations.Turret, 40); //__result.Add(VehicleChassisLocations.Left, 16); //__result.Add(VehicleChassisLocations.Front, 8); //__result.Add(VehicleChassisLocations.Right, 16); //__result.Add(VehicleChassisLocations.Rear, 16); } else { return; } }