Advertisement
HugePinball

zomboid addRandomDamageFromCrash

May 13th, 2022
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. public void addRandomDamageFromCrash(IsoGameCharacter var1, float var2) {
  2. int var3 = 1;
  3. if (var2 > 40.0F) {
  4. var3 = Rand.Next(1, 3);
  5. }
  6.  
  7. if (var2 > 70.0F) {
  8. var3 = Rand.Next(2, 4);
  9. }
  10.  
  11. int var4 = 0;
  12.  
  13. int var5;
  14. for(var5 = 0; var5 < var1.getVehicle().getPartCount(); ++var5) {
  15. VehiclePart var6 = var1.getVehicle().getPartByIndex(var5);
  16. if (var6.window != null && var6.getCondition() < 15) {
  17. ++var4;
  18. }
  19. }
  20.  
  21. for(var5 = 0; var5 < var3; ++var5) {
  22. int var9 = Rand.Next(BodyPartType.ToIndex(BodyPartType.Hand_L), BodyPartType.ToIndex(BodyPartType.MAX));
  23. BodyPart var7 = var1.getBodyDamage().getBodyPart(BodyPartType.FromIndex(var9));
  24. float var8 = Math.max(Rand.Next(var2 - 15.0F, var2), 5.0F);
  25. if (var1.Traits.FastHealer.isSet()) {
  26. var8 = (float)((double)var8 * 0.8);
  27. } else if (var1.Traits.SlowHealer.isSet()) {
  28. var8 = (float)((double)var8 * 1.2);
  29. }
  30.  
  31. switch (SandboxOptions.instance.InjurySeverity.getValue()) {
  32. case 1:
  33. var8 *= 0.5F;
  34. break;
  35. case 3:
  36. var8 *= 1.5F;
  37. }
  38.  
  39. var8 *= this.getScript().getPlayerDamageProtection();
  40. var8 = (float)((double)var8 * 0.9);
  41. var7.AddDamage(var8);
  42. if (var8 > 40.0F && Rand.Next(12) == 0) {
  43. var7.generateDeepWound();
  44. } else if (var8 > 50.0F && Rand.Next(10) == 0 && SandboxOptions.instance.BoneFracture.getValue()) {
  45. if (var7.getType() != BodyPartType.Neck && var7.getType() != BodyPartType.Groin) {
  46. var7.setFractureTime(Rand.Next(Rand.Next(10.0F, var8 + 10.0F), Rand.Next(var8 + 20.0F, var8 + 30.0F)));
  47. } else {
  48. var7.generateDeepWound();
  49. }
  50. }
  51.  
  52. if (var8 > 30.0F && Rand.Next(12 - var4) == 0) {
  53. var7 = var1.getBodyDamage().setScratchedWindow();
  54. if (Rand.Next(5) == 0) {
  55. var7.generateDeepWound();
  56. var7.setHaveGlass(true);
  57. }
  58. }
  59. }
  60.  
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement