RingaboltsVengeanceItemInfo.cs 2.1 KB

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