OldChestScript.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using GadgetCore.API;
  2. using System.Collections;
  3. using UnityEngine;
  4. namespace Subworlds.Scripts
  5. {
  6. public class OldChestScript : MonoBehaviour
  7. {
  8. private bool opened = false;
  9. private void Awake()
  10. {
  11. base.name = "chest";
  12. }
  13. private void Start() { }
  14. [RPC]
  15. private void Open()
  16. {
  17. if (!this.opened)
  18. {
  19. this.opened = true;
  20. base.GetComponent<NetworkView>().RPC("OpenMat", RPCMode.AllBuffered, new object[0]);
  21. this.DropItems();
  22. }
  23. }
  24. private void DropItems()
  25. {
  26. base.GetComponent<NetworkView>().RPC("DropLocal", RPCMode.All, new object[0]);
  27. }
  28. [RPC]
  29. private void DropLocal()
  30. {
  31. if (Menuu.curAugment == 12)
  32. StartCoroutine(DropLocalLoot());
  33. StartCoroutine(DropLocalLoot());
  34. }
  35. private IEnumerator DropLocalLoot()
  36. {
  37. yield return new WaitForSeconds(0.2f);
  38. var item = GadgetCoreAPI.EmptyItem();
  39. item.id = Core.itemOldTex.GetID();
  40. GadgetCoreAPI.DropItemLocal(gameObject.transform.position, item);
  41. yield return new WaitForSeconds(0.2f);
  42. GadgetCoreAPI.SpawnExp(gameObject.transform.position, 25);
  43. yield return new WaitForSeconds(0.2f);
  44. GadgetCoreAPI.SpawnExp(gameObject.transform.position, 10);
  45. yield return new WaitForSeconds(0.2f);
  46. GadgetCoreAPI.SpawnExp(gameObject.transform.position, 20);
  47. yield break;
  48. }
  49. private static Texture2D textureOldChestOpen = GadgetCoreAPI.LoadTexture2D("oldChestOpen.png");
  50. [RPC]
  51. private void OpenMat()
  52. {
  53. Menuu.characterStat[8]++;
  54. GameScript.cadetValue += 2;
  55. base.GetComponent<AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/chest"), Menuu.soundLevel / 10f);
  56. base.GetComponent<Collider>().enabled = false;
  57. Renderer renderer = gameObject.transform.GetChild(0).gameObject.GetComponentInChildren<Renderer>();
  58. renderer.material = new Material(Shader.Find("Unlit/Transparent"))
  59. {
  60. mainTexture = textureOldChestOpen
  61. };
  62. }
  63. }
  64. }