327 lines
9.6 KiB
C#
327 lines
9.6 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using static UnityEngine.EventSystems.EventTrigger;
|
||
|
||
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 Text txtStone;
|
||
//分解获得的源石数量
|
||
private int fenjieEquip;
|
||
//重铸
|
||
public Text txtChong;
|
||
|
||
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<EquipInfoPanel>();
|
||
});
|
||
btnDress.onClick.AddListener(() =>
|
||
{
|
||
DressEquip();
|
||
UIManager.Instance.HidePanel<EquipInfoPanel>();
|
||
});
|
||
btnFenjie.onClick.AddListener(() =>
|
||
{
|
||
|
||
});
|
||
btnChong.onClick.AddListener(() =>
|
||
{
|
||
|
||
});
|
||
}
|
||
|
||
private void FenJieEquip()
|
||
{
|
||
//装备品阶分解的数量
|
||
switch (equipData.equipGrade)
|
||
{
|
||
case 1:
|
||
fenjieEquip += 100;
|
||
break;
|
||
case 2:
|
||
fenjieEquip += 200;
|
||
break;
|
||
case 3:
|
||
fenjieEquip += 350;
|
||
break;
|
||
case 4:
|
||
fenjieEquip += 750;
|
||
break;
|
||
case 5:
|
||
fenjieEquip += 1000;
|
||
break;
|
||
case 6:
|
||
fenjieEquip += 1500;
|
||
break;
|
||
case 7:
|
||
fenjieEquip += 3000;
|
||
break;
|
||
case 8:
|
||
fenjieEquip += 5000;
|
||
break;
|
||
}
|
||
|
||
//附加属性增加装备的分解的源石数量
|
||
switch (equipData.equipAddAtt.Count)
|
||
{
|
||
case 1:
|
||
fenjieEquip += 50;
|
||
break;
|
||
case 2:
|
||
fenjieEquip += 100;
|
||
break;
|
||
case 3:
|
||
fenjieEquip += 150;
|
||
break;
|
||
case 4:
|
||
fenjieEquip += 200;
|
||
break;
|
||
}
|
||
}
|
||
|
||
//给外界更新面板的方法
|
||
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 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;
|
||
}
|
||
//更新装备面板
|
||
UIManager.Instance.GetPanel<EquipPanel>().UpdatePanel();
|
||
//更新玩家属性面板
|
||
UIManager.Instance.GetPanel<UserPanel>().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);
|
||
//换上去的属性增加
|
||
PlayerDataAdd(equipData, 1);
|
||
//换下来的装备,减少属性
|
||
PlayerDataAdd(equip, -1);
|
||
}
|
||
else
|
||
{
|
||
GameDataMgr.Instance.userEquip.dressEquip[name] = equipData;
|
||
//玩家属性增加
|
||
PlayerDataAdd(equipData,1);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
GameDataMgr.Instance.userEquip.dressEquip.Add(name, equipData);
|
||
//玩家属性增加
|
||
PlayerDataAdd(equipData,1);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 属性增加
|
||
/// </summary>
|
||
/// <param name="equip">装备信息</param>
|
||
/// <param name="num">是增加还是减少 1表示增加,-1表示减少</param>
|
||
private void PlayerDataAdd(EquipData equip,int num)
|
||
{
|
||
//基础属性增加
|
||
for (int i = 0; i < equip.equipBasicAtt.Count; i++)
|
||
{
|
||
switch (equip.equipBasicAtt[i].entryType)
|
||
{
|
||
case 1:
|
||
player.hp += num*equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 2:
|
||
player.atk += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 3:
|
||
player.def += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 4:
|
||
player.crit += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 5:
|
||
player.critDamage += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 6:
|
||
player.atkSpeed += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 7:
|
||
player.stoneAdd += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 8:
|
||
player.kangCrit += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 9:
|
||
player.gasAdd += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
}
|
||
}
|
||
//附加属性增加
|
||
for (int i = 0; i < equip.equipAddAtt.Count; i++)
|
||
{
|
||
switch (equip.equipBasicAtt[i].entryType)
|
||
{
|
||
case 1:
|
||
player.hp += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 2:
|
||
player.atk += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 3:
|
||
player.def += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 4:
|
||
player.crit += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 5:
|
||
player.critDamage += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 6:
|
||
player.atkSpeed += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 7:
|
||
player.stoneAdd += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 8:
|
||
player.kangCrit += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
case 9:
|
||
player.gasAdd += num * equip.equipBasicAtt[i].num;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|