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

247 lines
7.4 KiB
C#
Raw Normal View History

2024-12-02 18:00:58 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EquipDressPanel : BasePanel
{
public Button btnClose;
public Button btnDis;
public Button btnFenjie;
public Button btnChong;
public Text txtName;
public Text txtJingjie;
public Text txtQuality;
public Transform basicAtt;
public Transform addAtt;
public GameObject txtEntry;
//<2F><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private EquipData equipData;
private PlayerData player;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ--<2D><>ɫ
private string entryColor = "FF4E00";
//װ<><D7B0><EFBFBD><EFBFBD>ɫ--<2D><>ɫ
private string equipColorLv = "33A154";
//װ<><D7B0><EFBFBD><EFBFBD>ɫ--<2D><>ɫ
private string equipColorLan = "0030FF";
//װ<><D7B0><EFBFBD><EFBFBD>ɫ--<2D><>ɫ
private string equipColorZi = "8800FF";
//װ<><D7B0><EFBFBD><EFBFBD>ɫ--<2D><>ɫ
private string equipColorHuang = "FFD104";
//װ<><D7B0><EFBFBD><EFBFBD>ɫ--<2D><>ɫ
private string equipColorHong = "FF5F04";
public override void Init()
{
player = GameDataMgr.Instance.player;
btnClose.onClick.AddListener(() =>
{
UIManager.Instance.HidePanel<EquipDressPanel>();
});
btnDis.onClick.AddListener(() =>
{
DisEquip();
UIManager.Instance.HidePanel<EquipDressPanel>();
});
btnFenjie.onClick.AddListener(() =>
{
});
btnChong.onClick.AddListener(() =>
{
});
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
public void UpdatePanel(EquipData equip)
{
equipData = equip;
txtName.text = equip.name;
txtJingjie.text = equip.name.Substring(0, 2);
switch (equip.equipAddAtt.Count)
{
case 0:
UpdateColor(equipColorLv, "<22><>ɫ");
break;
case 1:
UpdateColor(equipColorLan, "<22><>ɫ");
break;
case 2:
UpdateColor(equipColorZi, "<22><>ɫ");
break;
case 3:
UpdateColor(equipColorHuang, "<22><>ɫ");
break;
case 4:
UpdateColor(equipColorHong, "<22><>ɫ");
break;
}
CreateTxtEntry(equip);
}
private void UpdateColor(string color, string colorName)
{
txtName.color = GameMgr.Instance.HexToColor(color);
txtName.gameObject.GetComponent<Outline>().effectColor = GameMgr.Instance.HexToColorAlaph(color);
txtJingjie.color = GameMgr.Instance.HexToColor(color);
txtJingjie.gameObject.GetComponent<Outline>().effectColor = GameMgr.Instance.HexToColorAlaph(color);
txtQuality.text = "colorName";
txtQuality.color = GameMgr.Instance.HexToColor(color);
txtQuality.gameObject.GetComponent<Outline>().effectColor = GameMgr.Instance.HexToColorAlaph(color);
}
//<2F><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private void CreateTxtEntry(EquipData equip)
{
GameObject go;
//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
if (equip.equipBasicAtt.Count > 0)
{
for (int i = 0; i < equip.equipBasicAtt.Count; i++)
{
go = Instantiate(txtEntry);
go.transform.SetParent(basicAtt, false);
go.GetComponent<TxtEntry>().UpdatePanel(equip.equipBasicAtt[i]);
}
}
//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
if (equip.equipAddAtt.Count > 0)
{
for (int i = 0; i < equip.equipAddAtt.Count; i++)
{
go = Instantiate(txtEntry);
go.transform.SetParent(addAtt, false);
go.GetComponent<TxtEntry>().UpdatePanel(equip.equipBasicAtt[i], entryColor);
}
}
}
//<2F><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ж<EFBFBD><D0B6>
private void DisEquip()
{
switch (equipData.equipType)
{
case 1:
DischargeEquip("tou");
break;
case 2:
DischargeEquip("yi");
break;
case 3:
DischargeEquip("shou");
break;
case 4:
DischargeEquip("yao");
break;
case 5:
DischargeEquip("tui");
break;
case 6:
DischargeEquip("xie");
break;
}
//<2F><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UIManager.Instance.GetPanel<EquipPanel>().UpdatePanel();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UIManager.Instance.GetPanel<UserPanel>().UpdatePanel();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameDataMgr.Instance.EquipDataSave();
GameDataMgr.Instance.PlayerDataSave();
}
//ж<><D0B6>װ<EFBFBD><D7B0>
private void DischargeEquip(string name)
{
//װ<><D7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ϊ<EFBFBD><CEAA>
GameDataMgr.Instance.userEquip.dressEquip[name] = null;
//װ<><D7B0><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
GameDataMgr.Instance.userEquip.itemEquip.Add(equipData);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>
PlayerDataDis();
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="equip">װ<><D7B0><EFBFBD><EFBFBD>Ϣ</param>
/// <param name="num"><3E><><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB>Ǽ<EFBFBD><C7BC><EFBFBD> 1<><31>ʾ<EFBFBD><CABE><EFBFBD>ӣ<EFBFBD>-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD></param>
private void PlayerDataDis()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>
for (int i = 0; i < equipData.equipBasicAtt.Count; i++)
{
switch (equipData.equipBasicAtt[i].entryType)
{
case 1:
player.hp -= equipData.equipBasicAtt[i].num;
break;
case 2:
player.atk -=equipData.equipBasicAtt[i].num;
break;
case 3:
player.def -= equipData.equipBasicAtt[i].num;
break;
case 4:
player.crit -= equipData.equipBasicAtt[i].num;
break;
case 5:
player.critDamage -= equipData.equipBasicAtt[i].num;
break;
case 6:
player.atkSpeed -= equipData.equipBasicAtt[i].num;
break;
case 7:
player.stoneAdd -= equipData.equipBasicAtt[i].num;
break;
case 8:
player.kangCrit -= equipData.equipBasicAtt[i].num;
break;
case 9:
player.gasAdd -= equipData.equipBasicAtt[i].num;
break;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>
for (int i = 0; i < equipData.equipAddAtt.Count; i++)
{
switch (equipData.equipBasicAtt[i].entryType)
{
case 1:
player.hp -= equipData.equipBasicAtt[i].num;
break;
case 2:
player.atk -= equipData.equipBasicAtt[i].num;
break;
case 3:
player.def -= equipData.equipBasicAtt[i].num;
break;
case 4:
player.crit -= equipData.equipBasicAtt[i].num;
break;
case 5:
player.critDamage -= equipData.equipBasicAtt[i].num;
break;
case 6:
player.atkSpeed -= equipData.equipBasicAtt[i].num;
break;
case 7:
player.stoneAdd -= equipData.equipBasicAtt[i].num;
break;
case 8:
player.kangCrit -= equipData.equipBasicAtt[i].num;
break;
case 9:
player.gasAdd -= equipData.equipBasicAtt[i].num;
break;
}
}
}
}