FieldAdapter.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System;
  5. namespace YLBattle
  6. {
  7. /// <summary>
  8. /// 地图数据适配器
  9. /// </summary>
  10. public class FieldAdapter : IFieldAdapter
  11. {
  12. #region 临时变量设定,如果启用,则转移到BattleParm中
  13. /// <summary>
  14. /// 卡牌最大宽度
  15. /// </summary>
  16. private int mCardWidth = 150;
  17. /// <summary>
  18. /// 每个队列的最大数
  19. /// </summary>
  20. private int mCartMaxCount = 5;
  21. #endregion
  22. /// <summary>
  23. /// 根据角色出生索引获取出生位置(临时。。。。)
  24. /// </summary>
  25. /// <param name="_bornIndex">出生索引</param>
  26. /// <returns>入口位置信息</returns>
  27. public int FighterMonsterOffset(int _bornIndex)
  28. {
  29. int result = 0;
  30. Dictionary<int, int> seatSetting = new Dictionary<int, int>() { };
  31. seatSetting.Add(0, 0);
  32. seatSetting.Add(1, 1);
  33. seatSetting.Add(2, -1);
  34. seatSetting.Add(3, 2);
  35. seatSetting.Add(4, -2);
  36. if (seatSetting.ContainsKey(_bornIndex))
  37. {
  38. return seatSetting[_bornIndex];
  39. }
  40. return result;
  41. }
  42. /// <summary>
  43. /// 检测是否完成指定关卡
  44. /// </summary>
  45. /// <param name="dif">关卡难度</param>
  46. /// <param name="level">关卡编号</param>
  47. /// <param name="indx">场景序号</param>
  48. /// <returns>true已完成,false未完成</returns>
  49. public bool HasFinishLevel(int dif, int level, int indx, int levelmode = 0)
  50. {
  51. //PVP模式
  52. if (levelmode == 2)
  53. {
  54. return true;
  55. }
  56. string levelstr = string.Empty;
  57. switch (levelmode)
  58. {
  59. case 0:
  60. //var gateInfo = ArenasProxy.Instance.GetCombatDataInfoById(level);
  61. var gateInfo = sm_gate_combat.GetMoById(level);
  62. levelstr = gateInfo.level;
  63. break;
  64. case 1:
  65. //var mFroeverInfo = ArenasProxy.Instance.GetCombatDataInfoById(level);
  66. var mFroeverInfo = sm_gate_combat.GetMoById(level);
  67. levelstr = mFroeverInfo.level;
  68. break;
  69. }
  70. string[] levelScene = levelstr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
  71. if (indx + 1 >= levelScene.Length)
  72. {
  73. return true;
  74. }
  75. return false;
  76. }
  77. }
  78. }