TurnTableView.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. using FairyGUI;
  2. using UnityEngine;
  3. using UI.TurnTable;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using ET;
  7. using System.Threading.Tasks;
  8. using System.Linq;
  9. using System.Text.RegularExpressions;
  10. using cfg.GfgCfg;
  11. namespace GFGGame
  12. {
  13. public class TurnTableView : BaseWindow
  14. {
  15. private UI_TurnTableUI _ui;
  16. private ValueBarController _valueBarController;
  17. private int activityID;
  18. private int propID;
  19. private int WaitTime;
  20. private float duratio;
  21. //这里固定旋转
  22. private float endValue;
  23. //这里获得偏移量
  24. private List<float> normalEndValue = new List<float>();
  25. public List<GLoader> pointerList = new List<GLoader>();
  26. //转盘物品
  27. public List<DropOutCfg> rewardItemList = new List<DropOutCfg>();
  28. //下面奖励物品
  29. public List<TurntableRewardCfg> rewardList = new List<TurntableRewardCfg>();
  30. public List<float> angleList = new List<float>() { 0, 39, 74, 109, 145, 180, 215, 250, 288, 325 };
  31. public int wishType = 0;
  32. private EffectUI _effectUI1;
  33. // private EffectUI _effectUI2;
  34. private EffectUI _effectUI3;
  35. private EffectUI _effectUI4;
  36. private EffectUI _effectUI5;
  37. private EffectUI _effectUI6;
  38. private EffectUI _effectUI7;
  39. private EffectUI _effectUISpecial;
  40. private Dictionary<string, EffectUI> _effectUIDic = new Dictionary<string, EffectUI>();
  41. private Dictionary<string, EffectUI> _effectTableUIDic = new Dictionary<string, EffectUI>();
  42. public override void Dispose()
  43. {
  44. EffectUIPool.Recycle(_effectUI1);
  45. _effectUI1 = null;
  46. // EffectUIPool.Recycle(_effectUI2);
  47. // _effectUI2 = null;
  48. EffectUIPool.Recycle(_effectUI3);
  49. _effectUI3 = null;
  50. EffectUIPool.Recycle(_effectUI4);
  51. _effectUI4 = null;
  52. EffectUIPool.Recycle(_effectUI5);
  53. _effectUI5 = null;
  54. EffectUIPool.Recycle(_effectUI6);
  55. _effectUI6 = null;
  56. EffectUIPool.Recycle(_effectUISpecial);
  57. _effectUISpecial = null;
  58. foreach (var v in _effectUIDic)
  59. {
  60. EffectUIPool.Recycle(v.Value);
  61. }
  62. _effectUIDic.Clear();
  63. foreach (var v in _effectTableUIDic)
  64. {
  65. EffectUIPool.Recycle(v.Value);
  66. }
  67. _effectTableUIDic.Clear();
  68. if (_valueBarController != null)
  69. {
  70. _valueBarController.Dispose();
  71. _valueBarController = null;
  72. }
  73. if (_ui != null)
  74. {
  75. _ui.Dispose();
  76. }
  77. _ui = null;
  78. base.Dispose();
  79. }
  80. protected override void Init()
  81. {
  82. base.Init();
  83. packageName = UI_TurnTableUI.PACKAGE_NAME;
  84. _ui = UI_TurnTableUI.Create();
  85. viewCom = _ui.target;
  86. isfullScreen = true;
  87. isReturnView = true;
  88. _valueBarController = new ValueBarController(_ui.m_valueBar);
  89. _ui.m_btnBack.onClick.Add(OnClickBtnClose);
  90. _ui.m_btnStartOne.onClick.Add(OnClickBtnStartOne);
  91. _ui.m_btnStartThree.onClick.Add(OnClickBtnStartThree);
  92. _ui.m_rewardIcon.onClick.Add(OnClickBtnReward);
  93. _ui.m_shopBtn.onClick.Add(OnClickBtnShop);
  94. _ui.m_giftBtn.onClick.Add(OnClickBtnGift);
  95. _ui.m_ruleBtn.onClick.Add(RuleController.ShowRuleView);
  96. endValue = 1080;
  97. duratio = 2.0f;
  98. WaitTime = 2700;
  99. AddEffect();
  100. }
  101. private void AddEffect()
  102. {
  103. _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX");
  104. //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_titleEffect, "ui_Activity", "HHYY_Text_TX/HHYY_Text_TX");
  105. _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_btnEffectOne, "ui_Activity", "HHYY_Button/HHYY_Button");
  106. _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_btnEffectThree, "ui_Activity", "HHYY_Button/HHYY_Button");
  107. _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_bgEffec1, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX");
  108. _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_bgEffec2, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX");
  109. _effectUISpecial = EffectUIPool.CreateEffectUI(_ui.m_specialEffect, "ui_Activity",
  110. "HHYY_Select_Special/HHYY_Select_Special");
  111. }
  112. protected override void OnShown()
  113. {
  114. base.OnShown();
  115. _ui.m_bg.url = ResPathUtil.GetBgImgPath("zqzp_bg");
  116. pointerList.Clear();
  117. if (pointerList == null || pointerList.Count < 3)
  118. {
  119. pointerList.Add(_ui.m_pointer0);
  120. pointerList.Add(_ui.m_pointer1);
  121. pointerList.Add(_ui.m_pointer2);
  122. }
  123. normalEndValue.Clear();
  124. activityID =
  125. ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityDataManager.Instance.TurnTableActivityType);
  126. propID = CommonDataManager.Tables.TblTurntableLuckyBoxCfg.GetByActivityId(activityID).CostID;
  127. int dropId = CommonDataManager.Tables.TblTurntableLuckyBoxCfg.GetByActivityId(activityID).DropId;
  128. rewardItemList = CommonDataManager.Tables.TblDropOutCfg.DataList.Where(a => a.Id == dropId).ToList();
  129. rewardList = CommonDataManager.Tables.TblTurntableRewardCfg.DataList.Where(a => a.ActivityId == activityID)
  130. .ToList();
  131. _valueBarController.OnShown();
  132. _valueBarController.UpdateList(new List<int>()
  133. { propID, ConstItemID.DIAMOND_RED, ConstItemID.DIAMOND_PURPLE });
  134. UpdateView();
  135. UpdateRewardItem();
  136. UpdateReward();
  137. UpdateTime(null);
  138. _ui.m_ruleBtn.data = 300038;
  139. Timers.inst.Add(1, 0, UpdateTime);
  140. }
  141. protected override void OnHide()
  142. {
  143. base.OnHide();
  144. Timers.inst.Remove(UpdateTime);
  145. _ui.m_btnStartOne.touchable = true;
  146. _ui.m_btnStartThree.touchable = true;
  147. _valueBarController.OnHide();
  148. //pointerList.Clear();
  149. ActivityDataManager.Instance.threeTurnResult.Clear();
  150. ActivityDataManager.Instance.TurnRewardList.Clear();
  151. }
  152. protected override void AddEventListener()
  153. {
  154. base.AddEventListener();
  155. EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateView);
  156. EventAgent.AddEventListener(ConstMessage.TurnTable_DateCHANGE, UpdateReward);
  157. EventAgent.AddEventListener(ConstMessage.REWARDVIEW_CLOTHER, ShowReward);
  158. }
  159. protected override void RemoveEventListener()
  160. {
  161. base.RemoveEventListener();
  162. EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateView);
  163. EventAgent.RemoveEventListener(ConstMessage.TurnTable_DateCHANGE, UpdateReward);
  164. EventAgent.RemoveEventListener(ConstMessage.REWARDVIEW_CLOTHER, ShowReward);
  165. }
  166. private void ShowReward()
  167. {
  168. if (ActivityDataManager.Instance.TurnSpecialRewardList != null &&
  169. ActivityDataManager.Instance.TurnSpecialRewardList.Count > 0)
  170. {
  171. ViewManager.Show<TurnTableTipsRewardView>(new object[]
  172. { ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnSpecialRewardList), null });
  173. ActivityDataManager.Instance.TurnSpecialRewardList = null;
  174. }
  175. }
  176. private void UpdateTime(object param = null)
  177. {
  178. //=====限时礼包倒计时
  179. var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB3);
  180. if (activityInfoByTypeList.Count == 0)
  181. {
  182. Timers.inst.Remove(UpdateTime);
  183. _ui.m_gift.visible = false;
  184. }
  185. else
  186. {
  187. _ui.m_giftTimeText.text =
  188. TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), activityInfoByTypeList[0].EndTime);
  189. }
  190. //=====限时礼包倒计时END
  191. }
  192. private void UpdateView()
  193. {
  194. ActivityOpenCfg activiyCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityID);
  195. if (activiyCfg != null)
  196. {
  197. _ui.m_timeText.text = "活动结束时间:" + GetTImeText(activiyCfg.EndTime);
  198. }
  199. //还要判断是否已购买,和时间
  200. var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB3);
  201. if (activityInfoByTypeList.Count == 0)
  202. {
  203. return;
  204. }
  205. ActivityOpenCfg activityOpenCfg =
  206. CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfoByTypeList[0].ActivityId);
  207. var shopCfgId = activityOpenCfg.Params1[0];
  208. var shopCfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault(shopCfgId);
  209. if (shopCfg == null)
  210. {
  211. return;
  212. }
  213. var remainBuyNum = shopCfg.MaxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.Id);
  214. if (activityInfoByTypeList.Count == 0)
  215. {
  216. _ui.m_gift.visible = false;
  217. }
  218. else if (remainBuyNum != 0)
  219. {
  220. _ui.m_gift.visible = true;
  221. }
  222. else
  223. {
  224. _ui.m_gift.visible = false;
  225. }
  226. }
  227. //更新转盘上物品
  228. private void UpdateRewardItem()
  229. {
  230. if (rewardItemList.Count < 10)
  231. {
  232. //现在转盘上只有十个item
  233. Debug.LogError("奖励不足10个");
  234. return;
  235. }
  236. for (int i = 0; i < 10; i++)
  237. {
  238. GComponent comProBonus = _ui.target.GetChild("item" + i).asCom;
  239. UI_rewardItem rewardItem = UI_rewardItem.Proxy(comProBonus);
  240. ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(rewardItemList[i].Item);
  241. if (!_effectTableUIDic.ContainsKey("item" + i))
  242. {
  243. _effectTableUIDic.Add("item" + i,
  244. EffectUIPool.CreateEffectUI(rewardItem.m_effect, "ui_Activity", "HHYY_Select/HHYY_Select"));
  245. }
  246. rewardItem.m_icon.url = ResPathUtil.GetIconPath(itemCfg);
  247. rewardItem.m_numText.text = string.Format("x{0}", rewardItemList[i].MaxNum);
  248. rewardItem.m_c1.selectedIndex = 0;
  249. rewardItem.m_effect.visible = false;
  250. if (rewardItem.target.data == null)
  251. {
  252. rewardItem.target.onClick.Add(OnClickTableRewardItem);
  253. }
  254. rewardItem.target.data = itemCfg.Id;
  255. UI_rewardItem.ProxyEnd();
  256. }
  257. }
  258. //更新下面次数的物品
  259. private void UpdateReward()
  260. {
  261. if (ActivityDataManager.Instance.TurnSpecialRewardList != null &&
  262. ActivityDataManager.Instance.TurnSpecialRewardList.Count > 0)
  263. {
  264. _ui.m_specialEffect.visible = true;
  265. }
  266. else
  267. {
  268. _ui.m_specialEffect.visible = false;
  269. }
  270. _ui.m_numberText.text = ActivityDataManager.Instance.TurnTableTimes.ToString();
  271. _ui.m_reward.m_bar.max = rewardList.Count;
  272. _ui.m_reward.m_bar.value = GetRewardIndex();
  273. float value = (float)GetRewardIndex() / (float)rewardList.Count;
  274. _ui.m_reward.target.scrollPane.SetPercX(value, false);
  275. for (int i = 0; i < rewardList.Count; i++)
  276. {
  277. GComponent comProBonus = _ui.m_reward.target.GetChild("itemj" + i).asCom;
  278. UI_reward rewardItem = UI_reward.Proxy(comProBonus);
  279. if (!_effectUIDic.ContainsKey("itemj" + i))
  280. {
  281. _effectUIDic.Add("itemj" + i,
  282. EffectUIPool.CreateEffectUI(rewardItem.m_effect, "ui_Activity",
  283. "HHYY_Line_Full/HHYY_Line_Full"));
  284. }
  285. rewardItem.m_effect.SetScale(1, 1);
  286. ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(rewardList[i].Bonus[0].ItemId);
  287. rewardItem.m_icon.url = ResPathUtil.GetIconPath(itemCfg);
  288. rewardItem.m_numText.text = rewardList[i].Num.ToString();
  289. if (ActivityDataManager.Instance.TurnRewardStateDic.ContainsKey(rewardList[i].Id))
  290. {
  291. if (i > (GetRewardIndex() - 1) ||
  292. ActivityDataManager.Instance.TurnRewardStateDic[rewardList[i].Id] == 2)
  293. {
  294. rewardItem.m_effect.visible = false;
  295. rewardItem.m_c1.selectedIndex = 0;
  296. RedDotController.Instance.SetComRedDot(rewardItem.target, false, "");
  297. }
  298. else
  299. {
  300. rewardItem.m_effect.visible = true;
  301. rewardItem.m_c1.selectedIndex = 1;
  302. RedDotController.Instance.SetComRedDot(rewardItem.target, true, "");
  303. }
  304. if (ActivityDataManager.Instance.TurnRewardStateDic[rewardList[i].Id] == 2)
  305. {
  306. rewardItem.m_effect.visible = false;
  307. rewardItem.m_c1.selectedIndex = 2;
  308. RedDotController.Instance.SetComRedDot(rewardItem.target, false, "");
  309. }
  310. }
  311. //if (i == rewardList.Count - 1)
  312. //{
  313. // comProBonus.x = ((float)rewardList[i].num / (float)rewardList[rewardList.Count - 1].num) * _ui.m_reward.m_bar.width - 30;
  314. //}
  315. //else
  316. {
  317. comProBonus.x = ((float)(i + 1) / (float)rewardList.Count) * _ui.m_reward.m_bar.width - 20;
  318. }
  319. if (rewardItem.target.data == null)
  320. {
  321. }
  322. rewardItem.target.onClick.Add(OnClickRewardItem);
  323. List<int> dateList = new List<int>() { itemCfg.Id, rewardList[i].Id };
  324. rewardItem.target.data = dateList;
  325. UI_rewardItem.ProxyEnd();
  326. }
  327. }
  328. private void OnClickTableRewardItem(EventContext context)
  329. {
  330. int id = (int)(context.sender as GObject).data;
  331. GoodsItemTipsController.ShowItemTips(id);
  332. }
  333. private async void OnClickRewardItem(EventContext context)
  334. {
  335. List<int> idList = (List<int>)(context.sender as GObject).data;
  336. //判断是否可领取
  337. if (ActivityDataManager.Instance.TurnRewardStateDic.ContainsKey(idList[1]))
  338. {
  339. //if (ActivityDataManager.Instance.TurnRewardStateDic[idList[1]] != 1)
  340. if (ActivityDataManager.Instance.TurnRewardStateDic[idList[1]] != 1)
  341. {
  342. GoodsItemTipsController.ShowItemTips(idList[0]);
  343. }
  344. else
  345. {
  346. bool result = await ActivitySProxy.ReqGetTurnTableReward(idList[1]);
  347. if (result)
  348. {
  349. }
  350. }
  351. }
  352. }
  353. private void OnClickBtnClose(object param)
  354. {
  355. ViewManager.GoBackFrom(typeof(TurnTableView).FullName);
  356. }
  357. private async void OnClickBtnStartOne()
  358. {
  359. ItemData item;
  360. if (BagDataManager.Instance.GetBagData().TryGetValue(propID, out item))
  361. {
  362. if (item.num >= 1)
  363. {
  364. bool result = await ActivitySProxy.ReqTurnTableWish(1);
  365. if (result)
  366. {
  367. wishType = 0;
  368. _ui.m_btnStartOne.touchable = false;
  369. _ui.m_btnStartThree.touchable = false;
  370. _ui.m_btnBack.touchable = false;
  371. _ui.m_valueBar.touchable = false;
  372. _ui.m_shopBtn.touchable = false;
  373. await TurnStart(0);
  374. await Task.Delay(WaitTime);
  375. BonusController.TryShowBonusList(
  376. ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnRewardList));
  377. ActivityDataManager.Instance.TurnRewardList.Clear();
  378. UpdateReward();
  379. _ui.m_btnStartOne.touchable = true;
  380. _ui.m_btnStartThree.touchable = true;
  381. _ui.m_btnBack.touchable = true;
  382. _ui.m_valueBar.touchable = true;
  383. _ui.m_shopBtn.touchable = true;
  384. }
  385. else
  386. {
  387. //Debug.LogError("许愿失败");
  388. }
  389. }
  390. else
  391. {
  392. if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
  393. TurnTipsController.Show(propID, 1, null, true);
  394. else
  395. {
  396. OnBuyItem(propID, 1);
  397. }
  398. }
  399. }
  400. else
  401. {
  402. if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
  403. TurnTipsController.Show(propID, 1, null, true);
  404. else
  405. {
  406. OnBuyItem(propID, 1);
  407. }
  408. }
  409. }
  410. private async void OnClickBtnStartThree()
  411. {
  412. ItemData item;
  413. if (BagDataManager.Instance.GetBagData().TryGetValue(propID, out item))
  414. {
  415. if (item.num >= 3)
  416. {
  417. bool result = await ActivitySProxy.ReqTurnTableWish(2);
  418. if (result)
  419. {
  420. _ui.m_btnStartOne.touchable = false;
  421. _ui.m_btnStartThree.touchable = false;
  422. _ui.m_btnBack.touchable = false;
  423. _ui.m_valueBar.touchable = false;
  424. _ui.m_shopBtn.touchable = false;
  425. await TurnStart(0);
  426. await Task.Delay(WaitTime);
  427. await TurnStart(1);
  428. await Task.Delay(WaitTime);
  429. await TurnStart(2);
  430. await Task.Delay(WaitTime);
  431. BonusController.TryShowBonusList(
  432. ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnRewardList));
  433. ActivityDataManager.Instance.TurnRewardList.Clear();
  434. _ui.m_btnStartOne.touchable = true;
  435. _ui.m_btnStartThree.touchable = true;
  436. _ui.m_btnBack.touchable = true;
  437. _ui.m_valueBar.touchable = true;
  438. _ui.m_shopBtn.touchable = true;
  439. UpdateReward();
  440. }
  441. else
  442. {
  443. //Debug.LogError("许愿失败");
  444. }
  445. }
  446. else
  447. {
  448. if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
  449. TurnTipsController.Show(propID, 3, null, true);
  450. else
  451. {
  452. OnBuyItem(propID, 3);
  453. }
  454. }
  455. }
  456. else
  457. {
  458. if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
  459. TurnTipsController.Show(propID, 3, null, true);
  460. else
  461. {
  462. OnBuyItem(propID, 3);
  463. }
  464. }
  465. }
  466. private async void OnBuyItem(int itemId, long count)
  467. {
  468. var _result = await ItemExchangeSProxy.ItemExchange(itemId, count);
  469. if (_result)
  470. BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(itemId, count));
  471. }
  472. private void OnClickBtnShop()
  473. {
  474. ViewManager.Show<StoreView>(new object[]
  475. { ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
  476. }
  477. private void OnClickBtnReward()
  478. {
  479. ViewManager.Show<TurnSpecialTipsView>();
  480. }
  481. private void OnClickBtnGift()
  482. {
  483. var activityInfoByTypeList =
  484. ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB3);
  485. var list = activityInfoByTypeList
  486. .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
  487. if (list.Count == 0)
  488. PromptController.Instance.ShowFloatTextPrompt("活动已结束");
  489. else
  490. ViewManager.Show<RushSaleGiftBoxView>(new object[] { ActivityType.XSLB3, this.viewData });
  491. }
  492. private async ETTask TurnStart(int Round)
  493. {
  494. UpdateRewardItem();
  495. GetOffSetValue(Round);
  496. if (normalEndValue.Count >= 3)
  497. {
  498. TurnTable(0, normalEndValue[0], Round);
  499. }
  500. await Task.Delay(200);
  501. if (normalEndValue.Count >= 2)
  502. {
  503. TurnTable(1, normalEndValue[1], Round);
  504. }
  505. await Task.Delay(200);
  506. if (normalEndValue.Count >= 3)
  507. {
  508. TurnTable(2, normalEndValue[2], Round);
  509. }
  510. }
  511. private void TurnTable(int index, float OffValue, int Round)
  512. {
  513. pointerList[index].rotation = pointerList[index].rotation % 360;
  514. float selfEndValue = pointerList[index].rotation;
  515. selfEndValue += endValue + OffValue;
  516. pointerList[index].TweenRotate(selfEndValue, duratio).OnComplete(() => SetItemSelect(index, Round));
  517. }
  518. private void SetItemSelect(int index, int Round)
  519. {
  520. int id = ActivityDataManager.Instance.threeTurnResult[Round][index].ConfigId;
  521. int i = GetItemIndexRota(id);
  522. GComponent comProBonus = _ui.target.GetChild("item" + i).asCom;
  523. UI_rewardItem rewardItem = UI_rewardItem.Proxy(comProBonus);
  524. rewardItem.m_c1.selectedIndex = 1;
  525. rewardItem.m_effect.visible = true;
  526. UI_rewardItem.ProxyEnd();
  527. }
  528. private void GetOffSetValue(int index)
  529. {
  530. normalEndValue.Clear();
  531. if (ActivityDataManager.Instance.threeTurnResult.ContainsKey(index))
  532. {
  533. normalEndValue.Add(GetOffSet(ActivityDataManager.Instance.threeTurnResult[index][0].ConfigId, 0));
  534. normalEndValue.Add(GetOffSet(ActivityDataManager.Instance.threeTurnResult[index][1].ConfigId, 1));
  535. normalEndValue.Add(GetOffSet(ActivityDataManager.Instance.threeTurnResult[index][2].ConfigId, 2));
  536. }
  537. else
  538. {
  539. ET.Log.Error("未获得奖励");
  540. }
  541. }
  542. //通过获得的物品id和当前指针位置获得偏移角度
  543. private float GetOffSet(int itemID, int index)
  544. {
  545. float currentRota = pointerList[index].rotation % 360;
  546. float OffSetOne = 360 - currentRota;
  547. float OffSetTwo = angleList[GetItemIndexRota(itemID)];
  548. float OffSet;
  549. if (currentRota > OffSetTwo)
  550. {
  551. OffSet = OffSetTwo + OffSetOne;
  552. }
  553. else if (currentRota < OffSetTwo)
  554. {
  555. OffSet = OffSetTwo - currentRota;
  556. }
  557. else
  558. {
  559. OffSet = 0;
  560. }
  561. return OffSet;
  562. }
  563. private int GetItemIndexRota(int id)
  564. {
  565. for (int i = 0; i < rewardItemList.Count; i++)
  566. {
  567. if (id == rewardItemList[i].Item)
  568. {
  569. return i;
  570. }
  571. }
  572. return 0;
  573. }
  574. private int GetRewardIndex()
  575. {
  576. for (int i = 0; i < rewardList.Count - 1; i++)
  577. {
  578. if (ActivityDataManager.Instance.TurnTableTimes < rewardList[0].Num)
  579. {
  580. return 0;
  581. }
  582. else if (ActivityDataManager.Instance.TurnTableTimes >= rewardList[rewardList.Count - 1].Num)
  583. {
  584. return rewardList.Count;
  585. }
  586. if (ActivityDataManager.Instance.TurnTableTimes >= rewardList[i].Num &&
  587. ActivityDataManager.Instance.TurnTableTimes < rewardList[i + 1].Num)
  588. {
  589. return i + 1;
  590. }
  591. }
  592. return 0;
  593. }
  594. private string GetTImeText(string time)
  595. {
  596. string pattern = @"\[(.*?)\]";
  597. // 创建一个Regex对象
  598. Regex regex = new Regex(pattern);
  599. // 匹配输入字符串中的所有内容
  600. MatchCollection matches = Regex.Matches(time, pattern);
  601. // 存储所有提取的内容
  602. string TimeText = matches[0].Groups[1].Value;
  603. for (int i = 1; i < matches.Count; i++)
  604. {
  605. TimeText += "-" + matches[i].Groups[1].Value;
  606. }
  607. return TimeText;
  608. }
  609. }
  610. }