286 lines
8.3 KiB
C#
286 lines
8.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class HistoryPanel : BasePanel
|
|
{
|
|
public Button returnBtn;
|
|
public List<HistoryItem> KillTimesList;//100次击杀统计
|
|
public GameObject historyItemPre;//物品预制体
|
|
public Transform ItemPreGrid;//预制体生成后的父物体
|
|
public List<GameObject> ItemList;
|
|
|
|
public TextMeshProUGUI throwEggText;//投入蜗牛蛋的文本
|
|
public TextMeshProUGUI getEggText;//获得蜗牛蛋的文本
|
|
|
|
public GameObject JournalPanelPre;//用户参与面板预制体
|
|
public Transform JournParent;//用户参与面板父物体
|
|
|
|
public List<GameObject> journalPanels=new List<GameObject>();
|
|
|
|
public ScrollRect scrollRect; // 将ScrollRect拖拽到此字段
|
|
public override void Start()
|
|
{
|
|
scrollRect.vertical = false; // 禁用垂直滚动
|
|
base.Start();
|
|
returnBtn.onClick.AddListener(OnClickReBtn);
|
|
// 设置ScrollView默认显示在最上面
|
|
|
|
}
|
|
|
|
public void OnClickReBtn()
|
|
{
|
|
HidePanel();
|
|
}
|
|
public override void HidePanel()
|
|
{
|
|
scrollRect.vertical = false; // 禁用垂直滚动
|
|
base.HidePanel();
|
|
}
|
|
public override void ShowPanel()
|
|
{
|
|
scrollRect.vertical = true; // 启用垂直滚动
|
|
base.ShowPanel();
|
|
}
|
|
public void SetKilledText(gameEscapeRoomKillCountResponseVo gameKill)//近100次被杀记录的文本修改方法
|
|
{
|
|
for (int i=0;i<KillTimesList.Count;i++)
|
|
{
|
|
|
|
if (KillTimesList[i].roomNo == gameKill.roomNo)
|
|
{
|
|
KillTimesList[i].TextPro.text = gameKill.kill+"次";//给次数值
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
public void CreateJournalPanel(List<dataList> gameData) // 创建参与历史记录
|
|
{
|
|
foreach (dataList item in gameData)
|
|
{
|
|
// 实例化一个新的 JournalPanelPre 对象
|
|
GameObject newPanel = Instantiate(JournalPanelPre, JournParent);
|
|
|
|
|
|
// 获取新实例的 JournalPanel 组件
|
|
JournalPanel panelComponent = newPanel.GetComponent<JournalPanel>();
|
|
|
|
// 设置实例化对象的内容
|
|
panelComponent.gameNoText.text = item.gameNo + "期";
|
|
panelComponent.gameNo = item.gameNo;
|
|
panelComponent.betText.text = item.bet.ToString();
|
|
panelComponent.roomNo = item.roomNo;
|
|
panelComponent.roomNoKill = item.roomNoKill;
|
|
panelComponent.beansCoinText.text = item.beansCoin.ToString();
|
|
panelComponent.createTimeText.text = item.createTime;
|
|
panelComponent.outcome = item.outcome;
|
|
|
|
// 判断是否已存在
|
|
bool exists = false;
|
|
foreach (GameObject panel in journalPanels)
|
|
{
|
|
if (panel.GetComponent<JournalPanel>().gameNo == item.gameNo)
|
|
{
|
|
exists = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// 如果不存在,则添加到列表
|
|
if (!exists)
|
|
{
|
|
journalPanels.Add(newPanel);
|
|
|
|
}
|
|
else
|
|
{
|
|
// 如果已存在,可以根据需求决定是否销毁该实例
|
|
Destroy(newPanel);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetKillHouse(List<gameEscapeModel> gameEscapeModelList) // 记录近 10 次被击杀的房间
|
|
{
|
|
foreach (gameEscapeModel gameEscape in gameEscapeModelList)
|
|
{
|
|
string[] parts = gameEscape.roomNoKill.Split(","); // 根据 ',' 分割字符串
|
|
Debug.Log("被击杀的房间号: " + gameEscape.roomNoKill + "---------------");
|
|
|
|
|
|
|
|
|
|
// 实例化新的对象
|
|
GameObject newHistoryItem = Instantiate(historyItemPre, ItemPreGrid);
|
|
|
|
// 设置实例的内容
|
|
HistoryItem historyItemComponent = newHistoryItem.GetComponent<HistoryItem>();
|
|
foreach (string killNo in parts)
|
|
{
|
|
historyItemComponent.nameTextPro.text += AddName(int.Parse(killNo)); // 房间名字
|
|
}
|
|
|
|
historyItemComponent.TextPro.text = gameEscape.gameNo + "期"; // 期号
|
|
//historyItemComponent.image.sprite = item.sprite; // 背景图片
|
|
|
|
// 限制列表最多保存 10 个实例
|
|
if (ItemList.Count >= 10)
|
|
{
|
|
Destroy(ItemList[0]); // 销毁最早的对象
|
|
ItemList.RemoveAt(0); // 从列表移除最早的对象
|
|
}
|
|
|
|
// 将新实例添加到列表
|
|
ItemList.Add(newHistoryItem);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public string AddName(int roomId)
|
|
{
|
|
string text="";
|
|
switch (roomId)
|
|
{
|
|
case 1:
|
|
text = "紫怪屋";
|
|
break;
|
|
case 2:
|
|
text = "青嬉舍";
|
|
break;
|
|
case 3:
|
|
text = "粉乐居";
|
|
break;
|
|
case 4:
|
|
text = "黄逗室";
|
|
break;
|
|
case 5:
|
|
text = "蓝笑窟";
|
|
break;
|
|
case 6:
|
|
text = "绿趣巢";
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
return text;
|
|
|
|
}
|
|
|
|
|
|
public string AddRaName(int roomId)
|
|
{
|
|
string text = "";
|
|
switch (roomId)
|
|
{
|
|
case 1:
|
|
text = "美队蜗";
|
|
break;
|
|
case 2:
|
|
text = "蜘蛛蜗";
|
|
break;
|
|
case 3:
|
|
text = "毒液蜗";
|
|
break;
|
|
case 4:
|
|
text = "钢铁蜗";
|
|
break;
|
|
case 5:
|
|
text = "蝙蝠蜗";
|
|
break;
|
|
case 6:
|
|
text = "超人蜗";
|
|
break;
|
|
case 7:
|
|
text = "雷神蜗";
|
|
break;
|
|
case 8:
|
|
text = "灭霸蜗";
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
return text;
|
|
|
|
}
|
|
public void SetRaKillHouse(List<GameKnightModelRecord> gameKnightModelList) // 记录近 10 次比赛记录
|
|
{
|
|
foreach (GameKnightModelRecord gameKnightMode in gameKnightModelList)
|
|
{
|
|
|
|
|
|
|
|
|
|
if (gameKnightMode.horseNoAll!="")
|
|
{
|
|
string[] parts = gameKnightMode.horseNoAll.Split(","); // 根据 ',' 分割字符串
|
|
// 实例化新的对象
|
|
GameObject newHistoryItem = Instantiate(historyItemPre, ItemPreGrid);
|
|
|
|
// 设置实例的内容
|
|
HistoryItem historyItemComponent = newHistoryItem.GetComponent<HistoryItem>();
|
|
int index = 0;
|
|
foreach (string RemainNo in parts)
|
|
{
|
|
if (index==1)//#A3FBFF //#D7FFA0 //#FFF9A3 //#FEED9F
|
|
{
|
|
historyItemComponent.nameTextPro.text += "<color=#D7FFA0>" + AddRaName(int.Parse(RemainNo)) + "</color>"; // 房间名字
|
|
}
|
|
else if (index==2)
|
|
{
|
|
|
|
historyItemComponent.nameTextPro.text += "<color=#A3FBFF>" + AddRaName(int.Parse(RemainNo)) + "</color>"; // 房间名字
|
|
}
|
|
else if (index==3)
|
|
{
|
|
historyItemComponent.nameTextPro.text += AddRaName(int.Parse(RemainNo)); // 房间名字
|
|
}
|
|
else
|
|
{
|
|
historyItemComponent.nameTextPro.text += "<color=#FEED9F>" + AddRaName(int.Parse(RemainNo)) + "</color>"; // 房间名字
|
|
|
|
}
|
|
|
|
index++;
|
|
}
|
|
|
|
historyItemComponent.TextPro.text = gameKnightMode.gameNo + "期"; // 期号
|
|
//historyItemComponent.image.sprite = item.sprite; // 背景图片
|
|
|
|
// 限制列表最多保存 10 个实例
|
|
if (ItemList.Count >= 10)
|
|
{
|
|
Destroy(ItemList[0]); // 销毁最早的对象
|
|
ItemList.RemoveAt(0); // 从列表移除最早的对象
|
|
}
|
|
|
|
// 将新实例添加到列表
|
|
ItemList.Add(newHistoryItem);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|