TurnTableView.cs 25 KB

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