using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class EquipInfoPanel : BasePanel { public Button btnClose; public Button btnDress; 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; public override void Init() { player = GameDataMgr.Instance.player; btnClose.onClick.AddListener(() => { UIManager.Instance.HidePanel(); }); btnDress.onClick.AddListener(() => { DressEquip(); UIManager.Instance.HidePanel(); }); btnFenjie.onClick.AddListener(() => { }); btnChong.onClick.AddListener(() => { }); } //给外界更新面板的方法 public void UpdatePanel(EquipData equip) { equipData = equip; txtName.text=equip.name; txtName.color = GameMgr.Instance.HexToColor(equip.color); txtName.gameObject.GetComponent().effectColor = GameMgr.Instance.HexToColorAlaph(equip.color); txtJingjie.text=equip.name.Substring(0,2); txtJingjie.color = GameMgr.Instance.HexToColor(equip.color); txtJingjie.gameObject.GetComponent().effectColor = GameMgr.Instance.HexToColorAlaph(equip.color); txtQuality.text = equip.colorName; txtQuality.color = GameMgr.Instance.HexToColor(equip.color); txtQuality.gameObject.GetComponent().effectColor = GameMgr.Instance.HexToColorAlaph(equip.color); CreateTxtEntry(equip); } //更新装备属性条 private void CreateTxtEntry(EquipData equip) { GameObject go; if (equip.hp!=0) { go = Instantiate(txtEntry); go.transform.SetParent(basicAtt, false); go.GetComponent().UpdatePanel("血量+"+equip.hp); } if (equip.atk != 0) { go = Instantiate(txtEntry); go.transform.SetParent(basicAtt, false); go.GetComponent().UpdatePanel("攻击力+" + equip.atk); } if (equip.def != 0) { go = Instantiate(txtEntry); go.transform.SetParent(basicAtt, false); go.GetComponent().UpdatePanel("防御力+" + equip.def); } if (equip.crit != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(basicAtt, false); go.GetComponent().UpdatePanel("暴击率+" + equip.crit+"%"); } if (equip.critDamage != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(basicAtt, false); go.GetComponent().UpdatePanel("暴击伤害+" + equip.critDamage + "%"); } if (equip.atkSpeed != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(addAtt, false); go.GetComponent().UpdatePanel("攻击速度+" + equip.atkSpeed + "%"); } if (equip.kangCrit != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(addAtt, false); go.GetComponent().UpdatePanel("抗爆率+" + equip.kangCrit + "%"); } if (equip.gasAdd != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(addAtt, false); go.GetComponent().UpdatePanel("灵气加成+" + equip.gasAdd + "%"); } if (equip.yuAdd != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(addAtt, false); go.GetComponent().UpdatePanel("仙玉加成+" + equip.yuAdd + "%"); } if (equip.stoneAdd != 0f) { go = Instantiate(txtEntry); go.transform.SetParent(addAtt, false); go.GetComponent().UpdatePanel("灵石加成+" + equip.stoneAdd + "%"); } } //玩家点击穿戴 private void DressEquip() { GameDataMgr.Instance.userEquip.itemEquip.Remove(equipData); switch (equipData.equipType) { case 1: AddEquip("tou"); break; case 2: AddEquip("yi"); break; case 3: AddEquip("shou"); break; case 4: AddEquip("yao"); break; case 5: AddEquip("tui"); break; case 6: AddEquip("xie"); break; } //玩家属性增加 PlayerDataAdd(); //更新装备面板 UIManager.Instance.GetPanel().UpdatePanel(); //更新玩家属性面板 UIManager.Instance.GetPanel().UpdatePanel(); //保存数据 GameDataMgr.Instance.EquipDataSave(); GameDataMgr.Instance.PlayerDataSave(); } private void AddEquip(string name) { if (GameDataMgr.Instance.userEquip.dressEquip.ContainsKey(name)) { if (GameDataMgr.Instance.userEquip.dressEquip[name]!=null) { EquipData equip = GameDataMgr.Instance.userEquip.dressEquip[name]; GameDataMgr.Instance.userEquip.dressEquip[name] = equipData; GameDataMgr.Instance.userEquip.itemEquip.Add(equip); } else { GameDataMgr.Instance.userEquip.dressEquip[name] = equipData; } } else { GameDataMgr.Instance.userEquip.dressEquip.Add(name, equipData); } } private void PlayerDataAdd() { player.hp += equipData.hp; player.atk += equipData.atk; player.def += equipData.def; player.crit += equipData.crit; player.critDamage += equipData.critDamage; player.atkSpeed += equipData.atkSpeed; player.kangCrit += equipData.kangCrit; player.gasAdd += equipData.gasAdd; player.stoneAdd += equipData.stoneAdd; } }