Patch_Chunk_SpawnBiomeSlot.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using GadgetCore.API;
  2. using GadgetCore.Util;
  3. using HarmonyLib;
  4. using System.Collections;
  5. using System.Threading;
  6. using System.Windows.Threading;
  7. using UnityEngine;
  8. namespace MonsterNests.Patches
  9. {
  10. [HarmonyPatch(typeof(Chunk))]
  11. [HarmonyPatch("SpawnBiomeSlot")]
  12. [HarmonyGadget("MonsterNests")]
  13. public static class Patch_Chunk_SpawnBiomeSlot
  14. {
  15. [HarmonyPostfix]
  16. public static bool Prefix(Chunk __instance, int a, int i, int mid, ref GameObject[] ___spawnSpot, ref GameObject[] ___spawnSpotMid, ref GameObject[] ___networkStuff, ref int ___temp)
  17. {
  18. Transform transform;
  19. if (mid == 1)
  20. transform = ___spawnSpotMid[i].transform;
  21. else
  22. transform = ___spawnSpot[i].transform;
  23. int num = UnityEngine.Random.Range(0, 1000);
  24. if (num < 5)
  25. {
  26. if (a == 0)
  27. {
  28. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectBugspotBig.Object, transform.position, Quaternion.identity, 0);
  29. ___temp++;
  30. return false;
  31. }
  32. else if (a == 1)
  33. {
  34. if (GameScript.challengeLevel <= 0)
  35. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectSpikePlant.Object, transform.position, Quaternion.identity, 0);
  36. else
  37. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectSpikePlantCM.Object, transform.position, Quaternion.identity, 0);
  38. ___temp++;
  39. return false;
  40. }
  41. else if (a == 2)
  42. {
  43. if (GameScript.challengeLevel <= 0)
  44. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectSpiderEgg.Object, transform.position, Quaternion.identity, 0);
  45. else
  46. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectSpiderEggCM.Object, transform.position, Quaternion.identity, 0);
  47. ___temp++;
  48. return false;
  49. }
  50. else if (a == 3)
  51. {
  52. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectGoldenShroom.Object, transform.position, Quaternion.identity, 0);
  53. ___temp++;
  54. return false;
  55. }
  56. else if (a == 4)
  57. {
  58. if (GameScript.challengeLevel <= 0)
  59. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectAncientCrystal.Object, transform.position, Quaternion.identity, 0);
  60. else
  61. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectAncientCrystalCM.Object, transform.position, Quaternion.identity, 0);
  62. ___temp++;
  63. return false;
  64. }
  65. else if (a == 5)
  66. {
  67. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectPlagueNest.Object, transform.position, Quaternion.identity, 0);
  68. ___temp++;
  69. return false;
  70. }
  71. else if (a == 6)
  72. {
  73. ___networkStuff[___temp] = (GameObject)Network.Instantiate(Core.objectFrozenWisp.Object, transform.position, Quaternion.identity, 0);
  74. ___temp++;
  75. return false;
  76. }
  77. }
  78. return true;
  79. }
  80. }
  81. }