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

247 lines
7.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}
}