CultivateImmortal/Assets/Scripts/GameScene/UI/EquipPanel.cs

330 lines
8.9 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class EquipPanel : BasePanel
{
//<2F><>ť<EFBFBD><C5A5>ʼ<EFBFBD><CABC>ɫ<EFBFBD>ǰ<EFBFBD>ɫ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD>ɫ
private string imgColor = "A6A6A6";
//<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ɫ <20><><EFBFBD><EFBFBD>
private string txtColor1 = "4A5551";
//<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ dz<><C7B3>
private string txtColor2 = "CDDACF";
public Button btnClose;
public Button btnTou;
public Button btnYi;
public Button btnShou;
public Button btnYao;
public Button btnTui;
public Button btnXie;
public Text txtTou;
public Text txtYi;
public Text txtShou;
public Text txtYao;
public Text txtTui;
public Text txtXie;
public Button btnAll;
public Button btnToukui;
public Button btnZhanPao;
public Button btnHuShou;
public Button btnHuYao;
public Button btnHuTui;
public Button btnZhanXue;
public Button btnFenJie;
public Text txtAll;
public Text txtToukui;
public Text txtZhanPao;
public Text txtHuShou;
public Text txtHuYao;
public Text txtHuTui;
public Text txtZhanXue;
public Text txtFenJie;
//<2F><><EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD>
public ScrollRect sv;
//װ<><D7B0>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>
public GameObject btnEquip;
//ѡ<><D1A1><EFBFBD>İ<EFBFBD>ť
private Button btnChoose;
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private Text txtChoose;
private UserEquipInfo userEquip;
//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>ҳ<EFBFBD><D2B3>
private List<GameObject> equipList = new List<GameObject>();
public override void Init()
{
btnChoose = btnAll;
txtChoose = txtAll;
userEquip = GameDataMgr.Instance.userEquip;
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD>͸<EFBFBD><CDB8>½<EFBFBD><C2BD><EFBFBD>
UpdatePanel();
btnClose.onClick.AddListener(() =>
{
UIManager.Instance.HidePanel<EquipPanel>();
});
//ȫ<><C8AB><EFBFBD><EFBFBD>ť
btnAll.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose!=btnAll)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
UpdateAllEquip();
}
});
//ͷ<><CDB7><EFBFBD><EFBFBD>ť
btnToukui.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnToukui)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnToukui, txtToukui);
UpdateEquip(1);
}
});
//ս<>۰<EFBFBD>ť
btnZhanPao.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnZhanPao)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnZhanPao, txtZhanPao);
UpdateEquip(2);
}
});
//<2F><><EFBFBD>ְ<EFBFBD>ť
btnHuShou.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnHuShou)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnHuShou, txtHuShou);
UpdateEquip(3);
}
});
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
btnHuYao.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnHuYao)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnHuYao, txtHuYao);
UpdateEquip(4);
}
});
//<2F><><EFBFBD>Ȱ<EFBFBD>ť
btnHuTui.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnHuTui)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnHuTui, txtHuTui);
UpdateEquip(5);
}
});
//սѥ<D5BD><D1A5>ť
btnZhanXue.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnZhanXue)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnZhanXue, txtZhanXue);
UpdateEquip(6);
}
});
//<2F>ֽⰴť
btnFenJie.onClick.AddListener(() =>
{
//<2F><><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ť<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>
if (btnChoose != btnFenJie)
{
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnFenJie, txtFenJie);
UpdateAllEquip();
}
});
2024-12-02 18:00:58 +08:00
//<2F><>װ<EFBFBD><D7B0>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ť
btnTou.onClick.AddListener(() =>
{
DressEquipBtn("tou");
});
//<2F><>װ<EFBFBD><D7B0>ս<EFBFBD>۰<EFBFBD>ť
btnYi.onClick.AddListener(() =>
{
DressEquipBtn("yi");
});
//<2F><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD>ť
btnShou.onClick.AddListener(() =>
{
DressEquipBtn("shou");
});
//<2F><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
btnYao.onClick.AddListener(() =>
{
DressEquipBtn("yao");
});
//<2F><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD>ť
btnTui.onClick.AddListener(() =>
{
DressEquipBtn("tui");
});
//<2F><>װ<EFBFBD><D7B0>սѥ<D5BD><D1A5>ť
btnXie.onClick.AddListener(() =>
{
DressEquipBtn("xie");
});
}
/// <summary>
/// <20>Ѵ<EFBFBD><D1B4><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
/// </summary>
private void DressEquipBtn(string name)
{
if (GameDataMgr.Instance.userEquip.dressEquip.ContainsKey(name))
{
if (GameDataMgr.Instance.userEquip.dressEquip[name] != null)
{
EquipDressPanel dress = UIManager.Instance.ShowPanel<EquipDressPanel>(E_UILayer.System);
dress.UpdatePanel(GameDataMgr.Instance.userEquip.dressEquip[name]);
}
}
}
/// <summary>
/// <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>ı䰴ť<E4B0B4><C5A5><EFBFBD><EFBFBD>ɫ
/// </summary>
/// <param name="btn"></param>
/// <param name="txt"></param>
public void SetColor(Button btn, Text txt)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫǰ<C9AB>Ȱ<EFBFBD><C8B0><EFBFBD>һ<EFBFBD>εİ<CEB5>ť<EFBFBD><C5A5>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
if (btnChoose != null && txtChoose != null)
{
btnChoose.image.color = Color.white;
txtChoose.color = GameMgr.Instance.HexToColor(txtColor1);
}
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>ô˴ε<CBB4><CEB5><EFBFBD><EFBFBD>İ<EFBFBD>ť<EFBFBD><C5A5>ɫ
btn.image.color = GameMgr.Instance.HexToColor(imgColor);
txt.color = GameMgr.Instance.HexToColor(txtColor2);
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD>µİ<C2B5>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
btnChoose = btn;
txtChoose = txt;
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void UpdatePanel()
{
//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>
UpdateAllEquip();
//<2F><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5>ɫ
SetColor(btnAll, txtAll);
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>װ<EFBFBD><D7B0>
if (userEquip.dressEquip.ContainsKey("tou"))
{
txtTou.text = userEquip.dressEquip["tou"].name;
2024-12-02 18:00:58 +08:00
txtTou.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["tou"].equipColor);
}
if (userEquip.dressEquip.ContainsKey("yi"))
{
txtYi.text = userEquip.dressEquip["yi"].name;
2024-12-02 18:00:58 +08:00
txtYi.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["yi"].equipColor);
}
if (userEquip.dressEquip.ContainsKey("shou"))
{
txtShou.text = userEquip.dressEquip["shou"].name;
2024-12-02 18:00:58 +08:00
txtShou.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["shou"].equipColor);
}
if (userEquip.dressEquip.ContainsKey("yao"))
{
txtYao.text = userEquip.dressEquip["yao"].name;
2024-12-02 18:00:58 +08:00
txtYao.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["yao"].equipColor);
}
if (userEquip.dressEquip.ContainsKey("tui"))
{
txtTui.text = userEquip.dressEquip["tui"].name;
2024-12-02 18:00:58 +08:00
txtTui.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["tui"].equipColor);
}
if (userEquip.dressEquip.ContainsKey("xie"))
{
txtXie.text = userEquip.dressEquip["xie"].name;
2024-12-02 18:00:58 +08:00
txtXie.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["xie"].equipColor);
}
}
//<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
private void UpdateEquip(int equipType)
{
//1 ͷ<><CDB7>2<EFBFBD>·<EFBFBD><C2B7><EFBFBD>3<EFBFBD>֣<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>5<EFBFBD>ȣ<EFBFBD>6Ь
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>б<EFBFBD>
for (int i = 0; i < equipList.Count; i++)
{
Destroy(equipList[i]);
}
equipList.Clear();
for (int i = 0; i < userEquip.itemEquip.Count; i++)
{
if (userEquip.itemEquip[i].equipType==equipType)
{
GameObject go = Instantiate(btnEquip);
go.GetComponent<BtnEquip>().UpdatePanel(userEquip.itemEquip[i]);
go.transform.SetParent(sv.content, false);
equipList.Add(go);
}
}
}
//ȫ<><C8AB>װ<EFBFBD><D7B0>
private void UpdateAllEquip()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>б<EFBFBD>
for (int i = 0; i < equipList.Count; i++)
{
Destroy(equipList[i]);
}
equipList.Clear();
for (int i = 0; i < userEquip.itemEquip.Count; i++)
{
GameObject go = Instantiate(btnEquip);
go.GetComponent<BtnEquip>().UpdatePanel(userEquip.itemEquip[i]);
go.transform.SetParent(sv.content,false);
equipList.Add(go);
}
}
void OnDestroy()
{
equipList = null;
}
}