ScoreSystemData.cs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509
  1. using ET;
  2. using System;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. namespace GFGGame
  6. {
  7. public class ClickType
  8. {
  9. public const int MISS_CLICK = 0;
  10. public const int GREAT_CLICK = 1;
  11. public const int PREFACT_CLICK = 2;
  12. }
  13. public class BeginTime
  14. {
  15. public const int PART_SCORE_1 = 1;//作用第一回合
  16. public const int PART_SCORE_2 = 2;//作用第二回合
  17. public const int PART_SCORE_3 = 3;//作用第三回合
  18. public const int PART_SCORE_4 = 4;//作用第四回合
  19. public const int PART_SCORE_5 = 5;//作用第五回合
  20. public const int PART_SCORE_6 = 6;//作用第六回合
  21. public const int PART_ALL_FIGHT_BEGIN = 7;//对战开始
  22. public const int PART_PREFACT_CLICK = 8;//每次优秀点击
  23. public const int PART_FIGHT_BEGIN = 9;//每回合开始
  24. public const int PART_FIGHT_END = 10;//每回合结束
  25. }
  26. public class RoleType
  27. {
  28. public const int MINE = 0;
  29. public const int ENEMY = 1;
  30. }
  31. // public class CurrentTime
  32. // {
  33. // public const int PART_ALL_FIGHT_BEGIN = 0;//对战开始
  34. // public const int PART_PREFACT_CLICK = 1;//每次优秀点击
  35. // public const int PART_FIGHT_BEGIN = 2;//每回合开始
  36. // public const int PART_FIGHT_END = 3;//每回合结束
  37. // }
  38. public class ScoreSystemData : SingletonBase<ScoreSystemData>
  39. {
  40. private const float _prefectScale = 0.866f;//完美缩放比
  41. private Dictionary<int, List<int>> equipDicWithPartId = new Dictionary<int, List<int>>();
  42. /// <summary>
  43. /// 将穿戴部件分组
  44. /// </summary>
  45. public void SetEquipDicWithType()
  46. {
  47. equipDicWithPartId.Clear();
  48. var equipDatas = MyDressUpHelper.dressUpObj.itemList;
  49. for (int i = 0; i < equipDatas.Count; i++)
  50. {
  51. FightScoreCfg[] typeCfgs = FightScoreCfgArray.Instance.dataArray;
  52. for (int j = 0; j < typeCfgs.Length; j++)
  53. {
  54. FightScoreCfg cfg = typeCfgs[j];
  55. if (equipDicWithPartId.ContainsKey(cfg.id) == false)
  56. {
  57. equipDicWithPartId.Add(cfg.id, new List<int>());
  58. }
  59. bool isCheckFinish = false;
  60. for (int k = 0; k < cfg.subTypesArr.Length; k++)
  61. {
  62. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(equipDatas[i]);
  63. if (itemCfg.subType == cfg.subTypesArr[k])
  64. {
  65. equipDicWithPartId[cfg.id].Add(equipDatas[i]);
  66. isCheckFinish = true;
  67. break;
  68. }
  69. }
  70. if (isCheckFinish) break;
  71. }
  72. }
  73. }
  74. /// <summary>
  75. /// 返回总主属性分
  76. /// </summary>
  77. /// <returns></returns>
  78. public double GetMainScore()
  79. {
  80. //(部件属性分数+标签分数+人物基础分+卡牌属性分数)*4
  81. var equipDatas = MyDressUpHelper.dressUpObj.itemList;
  82. int partScore = 0;
  83. double tagScore = 0;
  84. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  85. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  86. for (int i = 0; i < equipDatas.Count; i++)
  87. {
  88. partScore += ItemDataManager.GetItemAdditionScore(equipDatas[i], InstanceZonesDataManager.currentScoreType);
  89. tagScore = ItemDataManager.GetItemTagScore(equipDatas[i], InstanceZonesDataManager.currentFightTags);
  90. }
  91. int roleScore = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl)).baseScore;
  92. int cardScore = ItemDataManager.GetItemAdditionScore(InstanceZonesDataManager.currentCardId, InstanceZonesDataManager.currentScoreType);
  93. return (partScore + tagScore + roleScore + cardScore) * ConstScoreSystem.MAIN_SCORE;
  94. }
  95. public double GetTargetMainScore()
  96. {
  97. //(部件属性分数+标签分数+人物基础分+卡牌属性分数)*4
  98. int partScore = 0;
  99. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  100. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  101. for (int i = 0; i < FightScoreCfgArray.Instance.dataArray.Length; i++)
  102. {
  103. partScore += fightCfg.targetPartsScoreArr[i];
  104. }
  105. int roleScore = fightCfg.targetBaseScore;
  106. int cardScore = fightCfg.targetCardScore;
  107. return (partScore + roleScore + cardScore) * ConstScoreSystem.MAIN_SCORE;
  108. }
  109. /// <summary>
  110. /// 部件评分
  111. /// </summary>
  112. /// <param name="partId">部件id</param>
  113. /// <param name="clickType">点击状态0:miss,1:优秀,2:完美</param>
  114. /// <param name="mainScore">总主属性</param>
  115. /// <param name="type">评分部位</param>
  116. /// <param name="showCard">是否展示卡牌效果</param>
  117. /// <returns></returns>
  118. public int GetPartScore(int partId, int roleType, int clickType, double skillScore)
  119. {
  120. //部件评分=部件基础分*部件系数
  121. //点击评分=(部件基础分+(人物基础分+卡牌属性分数)*点击系数)*2.22 (新点击公式,防止点击优秀却因为未穿衣服结果是0分)
  122. //卡牌评分=总属性*技能配表百分比
  123. double partScore = GetPartScore(partId, roleType);
  124. double clickScore = ScoreSystemData.Instance.GetPartItemClickScore(partId, clickType, roleType);
  125. int score = (int)Math.Ceiling(partScore + clickScore + skillScore);
  126. return Math.Max(0, score);
  127. // return (int)Math.Round((partScore + skillScore));
  128. }
  129. private double GetPartScore(int partId, int roleType)
  130. {
  131. double partScore = 0;
  132. if (roleType == RoleType.MINE)
  133. {
  134. partScore = GetPartBaseScore(partId) * ConstScoreSystem.PART_SCORE;
  135. }
  136. else
  137. {
  138. partScore = GetTargetPartBaseScore(partId) * ConstScoreSystem.PART_SCORE;
  139. }
  140. return partScore;
  141. }
  142. /// <summary>
  143. /// 部件基础评分
  144. /// </summary>
  145. /// <param name="partId">评分部位</param>
  146. /// <returns></returns>
  147. private double GetPartBaseScore(int partId)
  148. {
  149. double partScore = 0;
  150. double tagScore = 0;
  151. if (!equipDicWithPartId.ContainsKey(partId)) return partScore;
  152. for (int i = 0; i < equipDicWithPartId[partId].Count; i++)
  153. {
  154. partScore += ItemDataManager.GetItemAdditionScore(equipDicWithPartId[partId][i], InstanceZonesDataManager.currentScoreType);
  155. tagScore += ItemDataManager.GetItemTagScore(equipDicWithPartId[partId][i], InstanceZonesDataManager.currentFightTags);
  156. }
  157. return partScore + tagScore;
  158. }
  159. private double GetTargetPartBaseScore(int partId)
  160. {
  161. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  162. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  163. if (fightCfg.targetPartsScoreArr.Length < FightScoreCfgArray.Instance.dataArray.Length)
  164. {
  165. ET.Log.Debug("战斗id:" + fightCfg.id + " targetPartsScore 数量不足");
  166. return 0;
  167. }
  168. return fightCfg.targetPartsScoreArr[partId - 1];
  169. }
  170. private double GetPartItemClickScore(int partId, int clickState, int roleType)
  171. {
  172. //点击评分=(部件基础分+(人物基础分+卡牌属性分数)*点击系数)*2.22
  173. double clickCoefficient = 0;
  174. switch (clickState)
  175. {
  176. case ClickType.MISS_CLICK:
  177. clickCoefficient = ConstScoreSystem.MISS_SCORE;
  178. break;
  179. case ClickType.GREAT_CLICK:
  180. clickCoefficient = ConstScoreSystem.GREAT_SCORE;
  181. break;
  182. case ClickType.PREFACT_CLICK:
  183. clickCoefficient = ConstScoreSystem.PERFECT_SCORE;
  184. break;
  185. }
  186. double clickScore = 0;
  187. if (roleType == RoleType.MINE)
  188. {
  189. int roleScore = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl)).baseScore;
  190. int cardScore = ItemDataManager.GetItemAdditionScore(InstanceZonesDataManager.currentCardId, InstanceZonesDataManager.currentScoreType);
  191. clickScore = (GetPartBaseScore(partId) + (cardScore + roleScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
  192. }
  193. else
  194. {
  195. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  196. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  197. int roleScore = fightCfg.targetBaseScore;
  198. int cardScore = fightCfg.targetCardScore;
  199. clickScore = (GetTargetPartBaseScore(partId) + (cardScore + roleScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
  200. }
  201. return clickScore;
  202. }
  203. /// <summary>
  204. /// 获取卡牌技能持续回合数
  205. /// </summary>
  206. /// <returns></returns>
  207. public List<int> GetRoundTime(int roleType)
  208. {
  209. List<int> roundTimes = new List<int>();
  210. if (roleType == RoleType.MINE)
  211. {
  212. List<PassivitySkillCfg> mySkillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(InstanceZonesDataManager.currentCardId);
  213. for (int i = 0; i < mySkillCfgs.Count; i++)
  214. {
  215. int skillLv = SkillDataManager.Instance.GetSkillLv(InstanceZonesDataManager.currentLevelCfgId, mySkillCfgs[i].skillId);
  216. PassivitySkillLvlCfg skillLvlCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv, mySkillCfgs[i].skillId);
  217. if (skillLvlCfg.beginTime == BeginTime.PART_ALL_FIGHT_BEGIN && UnityEngine.Random.Range(0, 10000) < skillLvlCfg.probability)
  218. {
  219. roundTimes.Add(skillLvlCfg.roundTime);
  220. }
  221. else
  222. {
  223. roundTimes.Add(0);
  224. }
  225. }
  226. }
  227. else
  228. {
  229. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  230. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  231. List<PassivitySkillCfg> targetSkillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(fightCfg.targetCardId);
  232. for (int i = 0; i < targetSkillCfgs.Count; i++)
  233. {
  234. int skillLv = fightCfg.targetSkillLvsArr[i];
  235. PassivitySkillLvlCfg skillLvlCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv, targetSkillCfgs[i].skillId);
  236. if (skillLvlCfg.beginTime == BeginTime.PART_ALL_FIGHT_BEGIN && UnityEngine.Random.Range(0, 10000) < skillLvlCfg.probability)
  237. {
  238. roundTimes.Add(skillLvlCfg.roundTime);
  239. }
  240. else
  241. {
  242. roundTimes.Add(0);
  243. }
  244. }
  245. }
  246. return roundTimes;
  247. }
  248. /// <summary>
  249. /// 获取有效技能配置,过滤掉:被对方失效的、不符合作用时机、未满足触发概率的技能
  250. /// </summary>
  251. /// <returns></returns>
  252. public List<PassivitySkillLvlCfg> GetValidSkills(int currentTime, int partId, int roleType, List<int> roundTimes, List<int> targetRoundTimes)
  253. {
  254. List<PassivitySkillLvlCfg> skillCfgs = new List<PassivitySkillLvlCfg>();
  255. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  256. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  257. int cardId = 0;
  258. int targetCardId;
  259. if (roleType == RoleType.MINE)
  260. {
  261. cardId = InstanceZonesDataManager.currentCardId;
  262. targetCardId = fightCfg.targetCardId;
  263. }
  264. else
  265. {
  266. targetCardId = InstanceZonesDataManager.currentCardId;
  267. cardId = fightCfg.targetCardId;
  268. }
  269. List<PassivitySkillCfg> mySkillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
  270. List<PassivitySkillCfg> targetSkillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(targetCardId);
  271. List<int> nullifySkillIndex = new List<int>();
  272. for (int i = 0; i < targetSkillCfgs.Count; i++)
  273. {
  274. PassivitySkillCfg skillCfg = targetSkillCfgs[i];
  275. int targetSkillLv = 0;
  276. if (roleType == RoleType.MINE)
  277. {
  278. targetSkillLv = fightCfg.targetSkillLvsArr[i];
  279. }
  280. else
  281. {
  282. targetSkillLv = SkillDataManager.Instance.GetSkillLv(targetCardId, skillCfg.skillId);
  283. }
  284. PassivitySkillLvlCfg targetSkillLvlCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(targetSkillLv, skillCfg.skillId);
  285. if (targetSkillLvlCfg.beginTime == BeginTime.PART_ALL_FIGHT_BEGIN && currentTime == BeginTime.PART_FIGHT_BEGIN
  286. || targetSkillLvlCfg.beginTime == BeginTime.PART_PREFACT_CLICK && currentTime == BeginTime.PART_PREFACT_CLICK
  287. || targetSkillLvlCfg.beginTime == BeginTime.PART_FIGHT_BEGIN && currentTime == BeginTime.PART_FIGHT_BEGIN
  288. || targetSkillLvlCfg.beginTime == BeginTime.PART_FIGHT_END && currentTime == BeginTime.PART_FIGHT_END
  289. || targetSkillLvlCfg.beginTime <= BeginTime.PART_SCORE_6 && currentTime == BeginTime.PART_FIGHT_BEGIN && partId == targetSkillLvlCfg.beginTime)
  290. {
  291. bool isProbability = targetSkillLvlCfg.nullifySkillIndex > 0 && UnityEngine.Random.Range(0, 10000) < targetSkillLvlCfg.probability;
  292. if (targetSkillLvlCfg.beginTime == BeginTime.PART_ALL_FIGHT_BEGIN && targetRoundTimes != null && partId < targetRoundTimes[i]) isProbability = true;
  293. if (isProbability) nullifySkillIndex.Add(targetSkillLvlCfg.nullifySkillIndex);
  294. }
  295. }
  296. for (int i = 0; i < mySkillCfgs.Count; i++)
  297. {
  298. PassivitySkillCfg skillCfg = mySkillCfgs[i];
  299. int mySkillLv = 0;
  300. if (roleType == RoleType.MINE)
  301. {
  302. mySkillLv = SkillDataManager.Instance.GetSkillLv(cardId, skillCfg.skillId);
  303. }
  304. else
  305. {
  306. mySkillLv = fightCfg.targetSkillLvsArr[i];
  307. }
  308. PassivitySkillLvlCfg mySkillLvlCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(mySkillLv, skillCfg.skillId);
  309. if (nullifySkillIndex.IndexOf(i + 1) >= 0) continue;//技能被对手失效
  310. if (mySkillLvlCfg.beginTime == BeginTime.PART_ALL_FIGHT_BEGIN && currentTime == BeginTime.PART_FIGHT_BEGIN
  311. || mySkillLvlCfg.beginTime == BeginTime.PART_PREFACT_CLICK && currentTime == BeginTime.PART_PREFACT_CLICK
  312. || mySkillLvlCfg.beginTime == BeginTime.PART_FIGHT_BEGIN && currentTime == BeginTime.PART_FIGHT_BEGIN
  313. || mySkillLvlCfg.beginTime == BeginTime.PART_FIGHT_END && currentTime == BeginTime.PART_FIGHT_END
  314. || mySkillLvlCfg.beginTime <= BeginTime.PART_SCORE_6 && currentTime == BeginTime.PART_FIGHT_BEGIN && partId == mySkillLvlCfg.beginTime)
  315. {
  316. bool isProbability = UnityEngine.Random.Range(0, 10000) < mySkillLvlCfg.probability;
  317. if (mySkillLvlCfg.beginTime == BeginTime.PART_ALL_FIGHT_BEGIN && roundTimes != null && partId < roundTimes[i]) isProbability = true;
  318. if (isProbability) skillCfgs.Add(mySkillLvlCfg);
  319. }
  320. }
  321. return skillCfgs;
  322. }
  323. /// <summary>
  324. /// 本轮技能分数
  325. /// </summary>
  326. /// <param name="validSkills">有效技能列表</param>
  327. /// <param name="mainScore">总主属性</param>
  328. /// <returns></returns>
  329. public void GetPartItemSkillScore(List<PassivitySkillLvlCfg> validSkills, double mainScore, double targetMainScore, out int skillScore, out int targetScore, out Dictionary<int, int> skillScoreDic)
  330. {
  331. double _skillScore = 0;
  332. double _targetSkillScore = 0;
  333. skillScoreDic = new Dictionary<int, int>();
  334. for (int i = 0; i < validSkills.Count; i++)
  335. {
  336. if (validSkills[i].target == 1)//作用自身
  337. {
  338. double score = mainScore * validSkills[i].ratio / 10000;
  339. _skillScore += score;
  340. skillScoreDic.Add(validSkills[i].skillId, (int)Math.Ceiling(score));
  341. }
  342. else if (validSkills[i].target == 2)//作用对方
  343. {
  344. double score = targetMainScore * validSkills[i].ratio / 10000;
  345. _targetSkillScore += score;
  346. skillScoreDic.Add(validSkills[i].skillId, (int)Math.Ceiling(score));
  347. }
  348. }
  349. skillScore = (int)Math.Ceiling(_skillScore);
  350. targetScore = (int)Math.Ceiling(_targetSkillScore);
  351. }
  352. /// <summary>
  353. /// 是否展示卡牌效果
  354. /// </summary>
  355. /// <param name="cardId">卡牌id</param>
  356. /// <param name="validSkills">被触发的有效技能列表</param>
  357. /// <returns></returns>
  358. public bool IsShowCard(int cardId, List<PassivitySkillLvlCfg> validSkills)
  359. {
  360. if (cardId <= 0) return false;//未选卡
  361. if (validSkills.Count == 0) return false;//本轮没有技能被触发不显示卡牌
  362. List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
  363. for (int i = 0; i < skillCfgs.Count; i++)
  364. {
  365. if (skillCfgs[i].mainSkill == 1)
  366. {
  367. return true;
  368. }
  369. }
  370. return false;
  371. }
  372. /// <summary>
  373. /// 登峰造极额外加分
  374. /// </summary>
  375. /// <param name="mainScore"></param>
  376. /// <returns></returns>
  377. public int GetAllCircleAddScore(double mainScore)
  378. {
  379. //主属性20%的加分
  380. return (int)Math.Ceiling(mainScore * ConstScoreSystem.ALL_PERFECT_SCORE);
  381. }
  382. /// <summary>
  383. /// 根据卡牌Id获取 战斗选卡 界面显示配置
  384. /// </summary>
  385. /// <param name="cardId"></param>
  386. /// <returns></returns>
  387. public PassivitySkillCfg GetShowSkillCfg(int cardId)
  388. {
  389. List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
  390. if (skillCfgs.Count <= 0)
  391. {
  392. Debug.LogWarning(cardId + " 这张卡片没有配置技能");
  393. return null;
  394. }
  395. for (int i = 0; i < skillCfgs.Count; i++)
  396. {
  397. if (skillCfgs[i].showSkill == 1)
  398. {
  399. // int skillLv = SkillDataManager.Instance.GetSkillLv(cardId, skillCfgs[i].skillId);
  400. return skillCfgs[i];
  401. }
  402. }
  403. return null;
  404. }
  405. /// <summary>
  406. /// 根据卡牌Id获取评分主技能显示配置
  407. /// </summary>
  408. /// <param name="cardId"></param>
  409. /// <returns></returns>
  410. public PassivitySkillCfg GetMainSkillCfg(int cardId)
  411. {
  412. // Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[cardId];
  413. List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
  414. if (skillCfgs.Count <= 0)
  415. {
  416. Debug.LogWarning(cardId + " 这张卡片没有配置技能");
  417. return null;
  418. }
  419. // foreach (int key in cfgs.Keys)
  420. // {
  421. for (int i = 0; i < skillCfgs.Count; i++)
  422. {
  423. if (skillCfgs[i].mainSkill == 1)
  424. {
  425. // int skillLV = SkillDataManager.Instance.GetSkillLv(cardId, skillCfgs[i].skillId);
  426. // PassivitySkillLvlCfgArray skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLV, skillCfgs[i].skillId);
  427. // return cfgs[key][skillLV - 1];
  428. return skillCfgs[i];
  429. }
  430. }
  431. return null;
  432. }
  433. /// <summary>
  434. /// 0失败1优秀2完美
  435. /// </summary>
  436. /// <param name="scale"></param>
  437. /// <returns></returns>
  438. public int GetClickType(float scale)
  439. {
  440. // float scaleX = _ui.m_comClick.m_comResult.m_imgCircle.scale.x;
  441. int clickType = ClickType.MISS_CLICK;
  442. if (FightDataManager.Instance.autoPlay == true)
  443. {
  444. return ClickType.PREFACT_CLICK;
  445. }
  446. if (scale <= _prefectScale && scale > 0.65f)
  447. {
  448. clickType = ClickType.PREFACT_CLICK;
  449. }
  450. else if (scale <= 0.216f)
  451. {
  452. clickType = ClickType.MISS_CLICK;
  453. }
  454. else
  455. {
  456. clickType = ClickType.GREAT_CLICK;
  457. }
  458. return clickType;
  459. }
  460. }
  461. }