247 lines
7.4 KiB
C#
247 lines
7.4 KiB
C#
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;
|
||
|
||
//本装备属性
|
||
private EquipData equipData;
|
||
private PlayerData player;
|
||
|
||
//词条颜色--红色
|
||
private string entryColor = "FF4E00";
|
||
|
||
//装备颜色--绿色
|
||
private string equipColorLv = "33A154";
|
||
//装备颜色--蓝色
|
||
private string equipColorLan = "0030FF";
|
||
//装备颜色--紫色
|
||
private string equipColorZi = "8800FF";
|
||
//装备颜色--黄色
|
||
private string equipColorHuang = "FFD104";
|
||
//装备颜色--红色
|
||
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(() =>
|
||
{
|
||
|
||
});
|
||
}
|
||
|
||
//给外界更新面板的方法
|
||
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, "绿色");
|
||
break;
|
||
case 1:
|
||
UpdateColor(equipColorLan, "蓝色");
|
||
break;
|
||
case 2:
|
||
UpdateColor(equipColorZi, "紫色");
|
||
break;
|
||
case 3:
|
||
UpdateColor(equipColorHuang, "黄色");
|
||
break;
|
||
case 4:
|
||
UpdateColor(equipColorHong, "红色");
|
||
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);
|
||
}
|
||
|
||
//更新装备属性条
|
||
private void CreateTxtEntry(EquipData equip)
|
||
{
|
||
GameObject go;
|
||
//装备基础属性词条
|
||
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]);
|
||
}
|
||
}
|
||
|
||
//装备附加属性词条
|
||
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);
|
||
}
|
||
}
|
||
}
|
||
|
||
//玩家点击卸下
|
||
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;
|
||
}
|
||
//更新装备面板
|
||
UIManager.Instance.GetPanel<EquipPanel>().UpdatePanel();
|
||
//更新玩家属性面板
|
||
UIManager.Instance.GetPanel<UserPanel>().UpdatePanel();
|
||
//保存数据
|
||
GameDataMgr.Instance.EquipDataSave();
|
||
GameDataMgr.Instance.PlayerDataSave();
|
||
}
|
||
//卸下装备
|
||
private void DischargeEquip(string name)
|
||
{
|
||
//装备部位变为空
|
||
GameDataMgr.Instance.userEquip.dressEquip[name] = null;
|
||
//装备列表添加装备
|
||
GameDataMgr.Instance.userEquip.itemEquip.Add(equipData);
|
||
//玩家属性减少
|
||
PlayerDataDis();
|
||
}
|
||
/// <summary>
|
||
/// 属性增加
|
||
/// </summary>
|
||
/// <param name="equip">装备信息</param>
|
||
/// <param name="num">是增加还是减少 1表示增加,-1表示减少</param>
|
||
private void PlayerDataDis()
|
||
{
|
||
//基础属性减少
|
||
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;
|
||
}
|
||
}
|
||
//附加属性减少
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
}
|