| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540 | 
							- using System;
 
- using System.Collections.Generic;
 
- using ET;
 
- using FairyGUI;
 
- using UI.MiniGame;
 
- using UnityEngine;
 
- namespace GFGGame
 
- {
 
-     public class MergeGameView : BaseWindow
 
-     {
 
-         private UI_MergeGameUI _ui;
 
-         private List<List<GComponent>> itemList = new List<List<GComponent>>();
 
-         private List<List<int>> idList = new List<List<int>>();
 
-         private int itemNum;
 
-         private int maxLv;
 
-         private System.Random rand;
 
-         private int _gameID;
 
-         private int _res;
 
-         //当前拖拽的index;
 
-         private int indexID;
 
-         //开始拖拽的坐标
 
-         private float startX;
 
-         private float startY;
 
-         private int indexX;
 
-         private int indexY;
 
-         //当前任务id;后台获取数据
 
-         private int taskId;
 
-         //当前点击id信息
 
-         private int materialID;
 
-         public override void Dispose()
 
-         {
 
-             if (_ui != null)
 
-             {
 
-                 _ui.Dispose();
 
-                 _ui = null;
 
-             }
 
-             base.Dispose();
 
-         }
 
-         protected override void OnInit()
 
-         {
 
-             base.OnInit();
 
-             packageName = UI_MergeGameUI.PACKAGE_NAME;
 
-             _ui = UI_MergeGameUI.Create();
 
-             this.viewCom = _ui.target;
 
-             isfullScreen = true;
 
-             _ui.m_backBtn.onClick.Add(Hide);
 
-             _ui.m_rewardGet.onClick.Add(SubmitTask);
 
-             _ui.m_MergeTipBtn.onClick.Add(ShowMergeRouteTips);
 
-             _ui.m_shopBtn.onClick.Add(ShowShopBtn);
 
-             _ui.m_sellBtn.target.onClick.Add(OnClickSellBtn);
 
-             _ui.target.onClick.Add(OnClickHideTips);
 
-         }
 
-         protected override void OnShown()
 
-         {
 
-             base.OnShown();
 
-             //进入这个界面的时候向后台获取任务id和历史id列表
 
-             UpdateView();
 
-             UpdateList();
 
-             UpdateTask();
 
-         }
 
-         protected override void OnHide()
 
-         {
 
-             for (int i = 0; i < itemNum; i++)
 
-             {
 
-                 for (int j = 0; j < itemNum; j++)
 
-                 {
 
-                     itemList[i][j].Dispose();
 
-                     itemList[i][j] = null;
 
-                 }
 
-             }
 
-             idList.Clear();
 
-             itemList.Clear();
 
-             base.OnHide();
 
-         }
 
-         private void UpdateView()
 
-         {
 
-             itemNum = 5;
 
-             taskId = MiniGameDateManager.Instance.taskID;
 
-             _res = MergeGameArray.Instance.GetCfg(taskId).resArr[0];
 
-             maxLv = 5;
 
-             materialID = 0;
 
-             rand = new System.Random();
 
-             _ui.m_rewardGet.visible = false;
 
-             _ui.m_sellBtn.target.GetChild("sellGetNum").text = "";
 
-             //_ui.m_newMaterial.target.visible = false;
 
-             _ui.m_name.text = "";
 
-             _ui.m_desc.text = ""; 
 
-             _ui.m_bg.url = ResPathUtil.GetBgImgPath("jbnf_xyxbj");
 
-         }
 
-         private void UpdateList()
 
-         {
 
-             for (int i = 0; i < itemNum; i++)
 
-             {
 
-                 itemList.Add(new List<GComponent>());
 
-                 idList.Add(new List<int>());
 
-                 for (int j = 0; j < itemNum; j++)
 
-                 {
 
-                     idList[i].Add(j);
 
-                     itemList[i].Add(UIPackage.CreateObject(UI_MergeGameUI.PACKAGE_NAME, "MergeGameItemUI").asCom);
 
-                     _ui.m_rangeDown.AddChild(itemList[i][j]);
 
-                     //对两个按钮单独处理
 
-                     if (i == itemNum - 1)
 
-                     {
 
-                         itemList[i][j].data = -1;
 
-                         idList[i][j] = -1;
 
-                         itemList[i][j].SetPosition((_ui.m_rangeDown.width / 10.0f) * (1 + (j * 2.0f)), (_ui.m_rangeDown.height / 10) * (1 + (i * 2.0f)), 0);
 
-                         if (j == 0)
 
-                         {
 
-                             itemList[i][j].GetChild("icon").icon = "ui://MiniGame/jbnf_doubao_icon";
 
-                             itemList[i][j].onClick.Add(OnClickAFuBtn);
 
-                             continue;
 
-                         }
 
-                         if ( j == itemNum - 1)
 
-                         {
 
-                             itemList[i][j].GetChild("icon").icon = "ui://MiniGame/jbnf_afu_icon";
 
-                             itemList[i][j].onClick.Add(OnClickDouBaoBtn);
 
-                             continue;
 
-                         }
 
-                     }
 
-                     //表示id;这里后续要改
 
-                     idList[i][j] = 0;
 
-                     if (i == 1 && j == 2)
 
-                     {
 
-                         idList[i][j] = 1;
 
-                     }
 
-                     if(i== 2 && j== 2)
 
-                     {
 
-                         idList[i][j] = 1;
 
-                     }
 
-                     //
 
-                     itemList[i][j].data = idList[i][j];
 
-                     itemList[i][j].draggable = true;
 
-                     itemList[i][j].onDragStart.Add(onDragStart);
 
-                     itemList[i][j].onDragEnd.Add(onDragEnd);
 
-                     itemList[i][j].onClick.Add(OnClickItem);
 
-                     itemList[i][j].dragBounds = new Rect(_ui.m_rangeTop.x + 90, _ui.m_rangeTop.y + 90, _ui.m_rangeTop.width, _ui.m_rangeTop.height);
 
-                     itemList[i][j].SetPosition( (_ui.m_rangeDown.width / 10.0f) * (1+ (j * 2.0f)), (_ui.m_rangeDown.height / 10) * (1+(i * 2.0f)) , 0);
 
-                     if (idList[i][j] == 0)
 
-                     {
 
-                         itemList[i][j].GetChild("icon").icon = "";
 
-                         itemList[i][j].draggable = false;
 
-                     }
 
-                     else
 
-                     {
 
-                         itemList[i][j].GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, idList[i][j])[0].resName, "MergeGame");
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         private void onDragStart(EventContext context)
 
-         {
 
-             GObject item = context.sender as GObject;
 
-             int itemInfo = (int)(context.sender as GObject).data;
 
-             indexY = Math.Min(itemNum - 1, (int)(item.x / (_ui.m_rangeDown.width / 5)));
 
-             indexX = Math.Min(itemNum - 1, (int)(item.y / (_ui.m_rangeDown.height / 5)));
 
-             startX = item.x;
 
-             startY = item.y;
 
-             indexID = itemInfo;
 
-             _ui.m_rangeDown.RemoveChild(item);
 
-             _ui.m_rangeTop.AddChild(item);
 
-         }
 
-         private void onDragEnd(EventContext context)
 
-         {
 
-             GObject item = context.sender as GObject;
 
-             int endIndexY = Math.Min(itemNum - 1 , (int)(item.x / (_ui.m_rangeDown.width/5)));
 
-             int endIndexX = Math.Min(itemNum - 1 ,(int)(item.y / (_ui.m_rangeDown.height/5)));
 
-             int itemEndInfo = (int)itemList[endIndexX][endIndexY].data;
 
-  
 
-             //合成规则:相同合成,但是材料只有五级,5和5不能合成6, 6属于另一类材料的一级
 
-             if (itemEndInfo == indexID && (indexX != endIndexX || indexY != endIndexY) && (itemEndInfo % maxLv != 0))
 
-             {
 
-                 indexID = 0;
 
-                 idList[indexX][indexY] = 0;
 
-                 itemList[indexX][indexY].data = 0;
 
-                 itemList[indexX][indexY].GetChild("icon").icon = "";
 
-                 idList[endIndexX][endIndexY] = itemEndInfo + 1;
 
-                 itemList[endIndexX][endIndexY].data = itemEndInfo + 1;
 
-                 itemList[endIndexX][endIndexY].GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, itemEndInfo + 1)[0].resName, "MergeGame");
 
-                 ShowNewMaterialView(endIndexX, endIndexY);
 
-                  UI_MergeGameItemUI itemUI = UI_MergeGameItemUI.Proxy(itemList[endIndexX][endIndexY]);
 
-                 itemUI.m_t0.Play();
 
-                 UI_MergeGameItemUI.ProxyEnd();
 
-                 if(InspectionTasks())
 
-                 {
 
-                     _ui.m_rewardGet.visible = true;
 
-                 }
 
-                 else
 
-                 {
 
-                     _ui.m_rewardGet.visible = false;
 
-                 }
 
-             }
 
-             if (itemEndInfo != indexID && itemEndInfo == 0)
 
-             {
 
-                 idList[indexX][indexY] = 0;
 
-                 itemList[indexX][indexY].data = 0;
 
-                 itemList[indexX][indexY].GetChild("icon").icon = "";
 
-                 idList[endIndexX][endIndexY] = indexID;
 
-                 itemList[endIndexX][endIndexY].data = indexID;
 
-                 itemList[endIndexX][endIndexY].GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, indexID)[0].resName, "MergeGame");
 
-                 itemEndInfo = indexID;
 
-                 indexID = 0;
 
-             }
 
-             item.x = startX;
 
-             item.y = startY;
 
-             if(indexID == 0)
 
-             {
 
-                 item.draggable = false;
 
-             }
 
-             if(itemEndInfo > 0 )
 
-             {
 
-                 itemList[endIndexX][endIndexY].draggable = true;
 
-             }
 
-             startX = 0;
 
-             startY = 0;
 
-             indexX = 0;
 
-             indexY = 0;
 
-             indexID = 0;
 
-             _ui.m_rangeTop.RemoveChild(item);
 
-             _ui.m_rangeDown.AddChild(item);
 
-         }
 
-         private void OnClickItem(EventContext context)
 
-         {
 
-             GObject item = context.sender as GObject;
 
-             int id = (int)item.data;
 
-             if(id <= 0)
 
-             {
 
-                 return;
 
-             }
 
-             indexY = Math.Min(itemNum - 1, (int)(item.x / (_ui.m_rangeDown.width / 5)));
 
-             indexX = Math.Min(itemNum - 1, (int)(item.y / (_ui.m_rangeDown.height / 5)));
 
-             materialID = id;
 
-             _ui.m_name.text = id.ToString();
 
-             _ui.m_desc.text = id.ToString();
 
-             ItemCfg itemReward = ItemCfgArray.Instance.GetCfg(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, id)[0].bonusSellArr[0][0]);
 
-             _ui.m_sellBtn.target.GetChild("sellReward").icon = ResPathUtil.GetCommonGameResPath(itemReward.res);
 
-             _ui.m_sellBtn.target.GetChild("sellGetNum").text = MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, id)[0].bonusSellArr[0][1].ToString();
 
-         }
 
-         private void OnClickSellBtn()
 
-         {
 
-             if(materialID == 0)
 
-             {
 
-                 return;
 
-             }
 
-             //移除
 
-             _ui.m_name.text = "";
 
-             _ui.m_desc.text = "";
 
-             _ui.m_sellBtn.target.GetChild("sellReward").icon = "";
 
-             _ui.m_sellBtn.target.GetChild("sellGetNum").text = "";
 
-             materialID = 0;
 
-             idList[indexX][indexY] = 0;
 
-             itemList[indexX][indexY].data = 0;
 
-             UI_MergeGameItemUI itemUI = UI_MergeGameItemUI.Proxy(itemList[indexX][indexY]);
 
-             itemUI.m_t2.Play();
 
-             itemUI.m_t3.Play();
 
-             UI_MergeGameItemUI.ProxyEnd();
 
-             indexX = 0;
 
-             indexY = 0;
 
-             //获得奖励
 
-         }
 
-         private void OnClickAFuBtn()
 
-         {
 
-             bool gameOver = false;
 
-             bool isRand = false;
 
-             int materialID = 0;
 
-             for (int i = 0; i < itemNum; i++)
 
-             {
 
-                 for (int j = 0; j < itemNum; j++)
 
-                 {
 
-                     if (idList[i][j] == 0)
 
-                     {
 
-                         gameOver = true;
 
-                         break;
 
-                     }
 
-                 }
 
-             }
 
-             if (!gameOver)
 
-             {
 
-                 return;
 
-             }
 
-             if(MergeGameArray.Instance.GetCfg(taskId).materialId1Arr.Length > 1)
 
-             {
 
-                 isRand = true;
 
-             }
 
-             else
 
-             {
 
-                 isRand = false;
 
-                 materialID = MergeGameArray.Instance.GetCfg(taskId).materialId1Arr[0];
 
-             }
 
-             while (true)
 
-             {
 
-                 int x = rand.Next(0, itemNum);
 
-                 int y = rand.Next(0, itemNum);
 
-                 int num;
 
-                 int randNum = rand.Next(0, 2);
 
-                 if (randNum == 0)
 
-                 {
 
-                     num = 1;
 
-                 }
 
-                 else
 
-                 {
 
-                     num = 6;
 
-                 }
 
-                 if(!isRand)
 
-                 { 
 
-                    num = materialID;
 
-                 }
 
-                 if (idList[x][y] == 0)
 
-                 {
 
-                     idList[x][y] = num;
 
-                     itemList[x][y].data = num;
 
-                     itemList[x][y].GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, num)[0].resName, "MergeGame");
 
-                     itemList[x][y].draggable = true;
 
-                     UI_MergeGameItemUI itemUI = UI_MergeGameItemUI.Proxy(itemList[x][y]);
 
-                     itemUI.m_t1.Play();
 
-                     UI_MergeGameItemUI.ProxyEnd();
 
-                     break;
 
-                 }
 
-             }
 
-         }
 
-         private void OnClickDouBaoBtn()
 
-         {
 
-             bool gameOver = false;
 
-             bool isRand = false;
 
-             int materialID = 0;
 
-             for (int i = 0; i < itemNum; i++)
 
-             {
 
-                 for (int j = 0; j < itemNum; j++)
 
-                 {
 
-                     if (idList[i][j] == 0)
 
-                     {
 
-                         gameOver = true;
 
-                         break;
 
-                     }
 
-                 }
 
-             }
 
-             if (!gameOver)
 
-             {
 
-                 return;
 
-             }
 
-             if (MergeGameArray.Instance.GetCfg(taskId).materialId2Arr.Length > 1)
 
-             {
 
-                 isRand = true;
 
-             }
 
-             else
 
-             {
 
-                 isRand = false;
 
-                 materialID = MergeGameArray.Instance.GetCfg(taskId).materialId2Arr[0];
 
-             }
 
-             while (true)
 
-             {
 
-                 int x = rand.Next(0, itemNum);
 
-                 int y = rand.Next(0, itemNum);
 
-                 int num;
 
-                 int randNum = rand.Next(0, 2);
 
-                 if (randNum == 0)
 
-                 {
 
-                     num = 11;
 
-                 }
 
-                 else
 
-                 {
 
-                     num = 16;
 
-                 }
 
-                 if (!isRand)
 
-                 {
 
-                     num = materialID;
 
-                 }
 
-                 if (idList[x][y] == 0)
 
-                 {
 
-                     idList[x][y] = num;
 
-                     itemList[x][y].data = num;
 
-                     itemList[x][y].draggable = true;
 
-                     itemList[x][y].GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, num)[0].resName, "MergeGame");
 
-                     UI_MergeGameItemUI itemUI = UI_MergeGameItemUI.Proxy(itemList[x][y]);
 
-                     itemUI.m_t1.Play();
 
-                     UI_MergeGameItemUI.ProxyEnd();
 
-                     break;
 
-                 }
 
-             }
 
-         }
 
-         private void UpdateTask()
 
-         {
 
-             _ui.m_rewardNum.text = String.Format("+{0}", MergeGameArray.Instance.GetCfg(taskId).bonusWinArr[0][1]);
 
-             ItemCfg itemReward = ItemCfgArray.Instance.GetCfg(MergeGameArray.Instance.GetCfg(taskId).bonusWinArr[0][0]);
 
-             _ui.m_rewardIcon.url = ResPathUtil.GetCommonGameResPath(itemReward.res);
 
-             for (int k = 0; k < MergeGameArray.Instance.GetCfg(taskId).targetIdArr.Length; k++)
 
-             {
 
-                 int targetID = MergeGameArray.Instance.GetCfg(taskId).targetIdArr[k][0];
 
-                 int targetNum = MergeGameArray.Instance.GetCfg(taskId).targetIdArr[k][1];
 
-                 switch (k)
 
-                 {
 
-                     case 0:
 
-                         _ui.m_rewardOne.target.visible = true;
 
-                         _ui.m_rewardTwo.target.visible = false;
 
-                         _ui.m_rewardOne.m_icon.url = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, targetID)[0].resName, "MergeGame");
 
-                         _ui.m_rewardOne.m_Count.text = targetNum.ToString();
 
-                         break;
 
-                     case 1:
 
-                         _ui.m_rewardTwo.target.visible = true;
 
-                         _ui.m_rewardTwo.m_icon.url = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, targetID)[0].resName, "MergeGame");
 
-                         _ui.m_rewardTwo.m_Count.text = targetNum.ToString();
 
-                         break;
 
-                     default:
 
-                         break;
 
-                 }
 
-             }
 
-             if (InspectionTasks())
 
-             {
 
-                 _ui.m_rewardGet.visible = true;
 
-             }
 
-             else
 
-             {
 
-                 _ui.m_rewardGet.visible = false;
 
-             }
 
-         }
 
-         //提交任务
 
-         private void SubmitTask()
 
-         {
 
-             for(int k =  0;k< MergeGameArray.Instance.GetCfg(taskId).targetIdArr.Length; k++)
 
-             {
 
-                 int targetID = MergeGameArray.Instance.GetCfg(taskId).targetIdArr[k][0];
 
-                 int targetNum = MergeGameArray.Instance.GetCfg(taskId).targetIdArr[k][1];
 
-                 for (int i = 0; i < itemNum; i++)
 
-                 {
 
-                     for (int j = 0; j < itemNum; j++)
 
-                     {
 
-                         if(idList[i][j] == targetID)
 
-                         {
 
-                             idList[i][j] = 0;
 
-                             itemList[i][j].data = 0;
 
-                             UI_MergeGameItemUI itemUI = UI_MergeGameItemUI.Proxy(itemList[i][j]);
 
-                             itemUI.m_t2.Play();
 
-                             itemUI.m_t3.Play();
 
-                             UI_MergeGameItemUI.ProxyEnd();
 
-                             targetNum--;
 
-                             if(targetNum == 0)
 
-                             {
 
-                                 break;
 
-                             }
 
-                         }
 
-                     }
 
-                     if (targetNum == 0)
 
-                     {
 
-                         break;
 
-                     }
 
-                 }
 
-             }
 
-             //向后台发送任务ID,获得奖励
 
-             //taskId = MiniGameDateManager.Instance.taskID;
 
-             //暂用
 
-             taskId++;
 
-             //
 
-             UpdateTask();
 
-         }
 
-         //检查是否达到提交要求
 
-         private bool InspectionTasks()
 
-         {
 
-             bool isTarged = true;
 
-             for (int k = 0; k < MergeGameArray.Instance.GetCfg(taskId).targetIdArr.Length; k++)
 
-             {
 
-                 int targetID = MergeGameArray.Instance.GetCfg(taskId).targetIdArr[k][0];
 
-                 int targetNum = MergeGameArray.Instance.GetCfg(taskId).targetIdArr[k][1];
 
-                 int currentNum = 0;
 
-                 for (int i = 0; i < itemNum; i++)
 
-                 {
 
-                     for (int j = 0; j < itemNum; j++)
 
-                     {
 
-                         if (idList[i][j] == targetID)
 
-                         {
 
-                             currentNum++;
 
-                             if (currentNum == targetNum)
 
-                             {
 
-                                 break;
 
-                             }
 
-                         }
 
-                     }
 
-                     if (currentNum == targetNum)
 
-                     {
 
-                         break;
 
-                     }
 
-                 }
 
-                 if (currentNum == targetNum && isTarged)
 
-                 {
 
-                     isTarged = true;
 
-                 }
 
-                 else
 
-                 {
 
-                     isTarged = false;
 
-                 }
 
-             }
 
-             return isTarged;
 
-         }
 
-         private void ShowNewMaterialView(int i ,int j)
 
-         {
 
-             //判断是否是新材料。再显示
 
-             _ui.m_newMaterial.target.x = itemList[i][j].x + _ui.m_rangeDown.x;
 
-             _ui.m_newMaterial.target.y = itemList[i][j].y + _ui.m_rangeDown.y;
 
-             _ui.m_newMaterial.target.visible = true;
 
-             _ui.m_newMaterial.target.GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(MergeCfgArray.Instance.GetCfgsByidAndmaterialId(_res, idList[i][j])[0].resName,"MergeGame");
 
-             UI_MergeGameItemUI itemUI = UI_MergeGameItemUI.Proxy(_ui.m_newMaterial.target);
 
-             itemUI.m_t0.Play();
 
-             UI_MergeGameItemUI.ProxyEnd();
 
-            
 
-         }
 
-         private void OnClickHideTips()
 
-         {
 
-             if(_ui.m_newMaterial.target.visible == true)
 
-             {
 
-                 _ui.m_newMaterial.target.visible = false;
 
-             } 
 
-         }
 
-         private void ShowMergeRouteTips()
 
-         {
 
-             ViewManager.Show<MergeGameMaterialTipView>(new object[]{ _res });   
 
-         }
 
-         private void ShowShopBtn()
 
-         {
 
-             ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
 
-         }
 
-     }
 
- }
 
 
  |