RingaboltsVengeanceItemInfo.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using GadgetCore.API;
  2. using System.Collections;
  3. using System.Reflection;
  4. using UnityEngine;
  5. namespace UltimateNPCWeapons.Infos
  6. {
  7. public class RingaboltsVengeanceItemInfo : ItemInfo
  8. {
  9. public RingaboltsVengeanceItemInfo(ItemType Type, string Name, string Desc, Texture Tex, int Value = -1, EquipStats Stats = default, Texture HeldTex = null, Texture HeadTex = null, Texture BodyTex = null, Texture ArmTex = null)
  10. : base(Type, Name, Desc, Tex, Value, Stats, HeldTex, HeadTex, BodyTex, ArmTex)
  11. {
  12. }
  13. public RingaboltsVengeanceItemInfo(ItemType Type, string Name, string Desc, Material Mat, int Value = -1, EquipStats Stats = default, Material HeldMat = null, Material HeadMat = null, Material BodyMat = null, Material ArmMat = null)
  14. : base(Type, Name, Desc, Mat, Value, Stats, HeldMat, HeadMat, BodyMat, ArmMat)
  15. {
  16. }
  17. private static readonly FieldInfo canAttack = typeof(PlayerScript).GetField("canAttack", BindingFlags.NonPublic | BindingFlags.Instance);
  18. private static readonly FieldInfo attacking = typeof(PlayerScript).GetField("attacking", BindingFlags.NonPublic | BindingFlags.Instance);
  19. private static readonly FieldInfo t = typeof(PlayerScript).GetField("t", BindingFlags.NonPublic | BindingFlags.Instance);
  20. private static readonly FieldInfo r = typeof(PlayerScript).GetField("r", BindingFlags.NonPublic | BindingFlags.Instance);
  21. public IEnumerator Attack(PlayerScript script)
  22. {
  23. canAttack.SetValue(script, false);
  24. attacking.SetValue(script, true);
  25. script.StartCoroutine(script.ATKSOUND());
  26. //script.GetComponent<AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/excal"), Menuu.soundLevel / 10f);
  27. script.Animate(3);
  28. yield return new WaitForSeconds(0.3f);
  29. script.attackCube.SetActive(true);
  30. yield return new WaitForSeconds(0.2f);
  31. script.attackCube.SetActive(false);
  32. attacking.SetValue(script, false);
  33. yield return new WaitForSeconds(0.1f);
  34. canAttack.SetValue(script, true);
  35. yield break;
  36. }
  37. }
  38. }