| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using GadgetCore.API;
- using GadgetCore.Util;
- using HarmonyLib;
- using System.Collections;
- using System.Threading;
- using System.Windows.Threading;
- using UnityEngine;
- namespace MonsterNests.Patches
- {
- [HarmonyPatch(typeof(ObjectScript))]
- [HarmonyPatch("Die")]
- [HarmonyGadget("MonsterNests")]
- public static class Patch_ObjectScript_Die
- {
- [HarmonyPostfix]
- public static void Prefix(ObjectScript __instance, ref int ___id)
- {
- if (___id == Core.objectBugspotBig.GetID())
- {
- GameScript.cadetValue += 34;
- if (Network.isServer)
- {
- __instance.StartCoroutine(SpawnWasps(__instance.transform.position.x, __instance.transform.position.y));
- }
- }
- else if (___id == Core.objectSpiderEgg.GetID())
- {
- GameScript.cadetValue += 34;
- __instance.StartCoroutine(Shake());
- if (Network.isServer)
- {
- __instance.StartCoroutine(SpawnSpiders(__instance.transform.position.x, __instance.transform.position.y));
- }
- }
- else if (___id == Core.objectGoldenShroom.GetID())
- {
- GameScript.cadetValue += 34;
- __instance.StartCoroutine(Shake());
- if (Network.isServer)
- {
- Network.Instantiate(Resources.Load("e/bully"), new Vector3(__instance.transform.position.x, __instance.transform.position.y + 1.1f, 0f), Quaternion.identity, 0);
- }
- }
- }
- private static IEnumerator Shake()
- {
- Camera.main.GetComponent<Animation>().Play("shake");
- yield return new WaitForSeconds(3.5f);
- Camera.main.GetComponent<Animation>().Stop();
- Camera.main.transform.eulerAngles = new Vector3(0f, 0f, 0f);
- yield break;
- }
- private static IEnumerator SpawnSpiders(float xBase, float yBase)
- {
- for (int i = 0; i < 10; i++)
- {
- int x = Random.Range(-40, 40);
- int y = Random.Range(-40, 40);
- Network.Instantiate(Resources.Load("e/rockspider"), new Vector3(xBase + x / 10f, yBase + 1.1f + y/10f, 0f), Quaternion.identity, 0);
- yield return new WaitForSeconds(0.3f);
- }
- yield break;
- }
- private static IEnumerator SpawnWasps(float xBase, float yBase)
- {
- for (int i = 0; i < 10; i++)
- {
- int x = Random.Range(-15, 15);
- int y = Random.Range(-15, 15);
- Network.Instantiate(Resources.Load("e/wasp"), new Vector3(xBase + x / 10f, yBase + 1.1f + y / 10f, 0f), Quaternion.identity, 0);
- yield return new WaitForSeconds(0.1f);
- }
- yield break;
- }
- }
- }
|