Patch_Chunk_SpawnBiomeSlot.cs 3.6 KB

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