AttackRandomUtil.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using Random = System.Random;
  4. namespace Game
  5. {
  6. public class AttackRandomUtil
  7. {
  8. private static readonly Dictionary<int, int[]> CockAttackDict = new Dictionary<int, int[]>()
  9. {
  10. { 1, new int[] { 1, 2, 3, -1 } },
  11. { 2, new int[] { 2, 3, 4, -1 } },
  12. { 3, new int[] { 3, 4, 5, -1 } },
  13. { 4, new int[] { 1, 2, 4, -1 } },
  14. { 5, new int[] { 1, 2, 5, -1 } },
  15. { 6, new int[] { 2, 4, 5, -1 } },
  16. { 7, new int[] { 1, 3, 4, -1 } },
  17. };
  18. private static readonly Dictionary<int, float[]> CockJumpDict = new Dictionary<int, float[]>()
  19. {
  20. { 1, new float[] { 2.4f, 2f } }, // 高跳速度,低跳速度
  21. { 2, new float[] { 2.7f, 2.3f } },
  22. { 3, new float[] { 2.3f, 2.1f } },
  23. { 4, new float[] { 2.6f, 2.2f } },
  24. { 5, new float[] { 2.8f, 2.4f } },
  25. { 6, new float[] { 2.2f, 1.8f } },
  26. { 7, new float[] { 2.9f, 2.5f } },
  27. };
  28. public static int GetRandomNumberFromDict(int cockId)
  29. {
  30. if (CockAttackDict.ContainsKey(cockId))
  31. {
  32. var numbers = CockAttackDict[cockId];
  33. var random = new Random();
  34. var randomIndex = random.Next(0, numbers.Length);
  35. return numbers[randomIndex];
  36. }
  37. // 如果 key 不存在,可以返回一个默认值或抛出异常等处理方式
  38. return -1;
  39. }
  40. public static float GetHighJumpSpeed(int cockId)
  41. {
  42. if (CockAttackDict.ContainsKey(cockId))
  43. {
  44. var numbers = CockJumpDict[cockId];
  45. return numbers[0] * 1.5f;
  46. }
  47. // 如果 key 不存在,可以返回一个默认值或抛出异常等处理方式
  48. return 2.4f;
  49. }
  50. public static float GetLowJumpSpeed(int cockId)
  51. {
  52. if (CockAttackDict.ContainsKey(cockId))
  53. {
  54. var numbers = CockJumpDict[cockId];
  55. return numbers[1] * 1.5f;
  56. }
  57. // 如果 key 不存在,可以返回一个默认值或抛出异常等处理方式
  58. return 2f;
  59. }
  60. }
  61. }