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

234 lines
6.5 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using static UnityEngine.GraphicsBuffer;
public class UserPanel : BasePanel
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public RectTransform imgGasLen;
private float gasWide = 620f;
//װ<><D7B0><EFBFBD><EFBFBD>ť
public Button btnEquip;
//<2F>
public Button btnJian;
//<2F><><EFBFBD><EFBFBD>
public Button btnLian;
//<2F><><EFBFBD><EFBFBD>
public Button btnGong;
//ͻ<><CDBB>
public Button btnTop;
//<2F><><EFBFBD><EFBFBD>
public Text txtRealm;
public Outline outLine;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Transform gasTipPos;
//<2F><>ť<EFBFBD><C5A5>Ϣ<EFBFBD><CFA2>
public Transform tipPanelPos;
//<2F><><EFBFBD><EFBFBD>
public Text txtGas;
//Ѫ<><D1AA>
public Text txtHp;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Text txtAtk;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Text txtDef;
//<2F><><EFBFBD><EFBFBD>
public Text txtCrit;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>
public Text txtMinuteGas;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Text txtKangCrit;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
public Text txtAtkSpeed;
//<2F><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>
public Text txtCritDamage;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>
public Text txtGasAdd;
//<2F><>ʯ<EFBFBD>ӳ<EFBFBD>
public Text txtStone;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private PlayerData player;
void Awake()
{
EventCenter.Instance.AddEventListener<int>(E_EventType.E_Pool_GasTip, GasTip);
//<2F><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ
GameMgr.Instance.isUserNumAndGas = false;
}
public override void Init()
{
player=GameDataMgr.Instance.player;
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD>
UpdatePanel();
//ͻ<>ư<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
btnTop.onClick.AddListener(() =>
{
GasIsEnough();
});
btnEquip.onClick.AddListener(() =>
{
UIManager.Instance.ShowPanel<EquipPanel>(E_UILayer.System);
});
btnJian.onClick.AddListener(() =>
{
});
btnLian.onClick.AddListener(() =>
{
});
btnGong.onClick.AddListener(() =>
{
});
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void UpdatePanel()
{
//<2F><><EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>
txtRealm.text = player.state;
txtRealm.color = GameMgr.Instance.HexToColor(GameDataMgr.Instance.userUpGradeInfo[player.stateId].color);
outLine.effectColor = GameMgr.Instance.HexToColorAlaph(GameDataMgr.Instance.userUpGradeInfo[player.stateId].color);
//<2F><><EFBFBD><EFBFBD>
UpdateGas();
//Ѫ<><D1AA>
txtHp.text = <><D1AA><EFBFBD><EFBFBD>" + player.hp;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
txtAtk.text = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + player.atk;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
txtDef.text ="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"+player.def;
//<2F><><EFBFBD><EFBFBD>
txtCrit.text = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + player.crit.ToString("F1")+"%";
//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
txtMinuteGas.text = "ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + player.minuteGas;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
txtKangCrit.text = "<22><><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>" + player.kangCrit.ToString("F1") + "%";
//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
txtAtkSpeed.text = "<22><><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>" + player.atkSpeed.ToString("F1") + "%";
//<2F><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>
txtCritDamage.text = "<22><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD>" + player.critDamage.ToString("F1") + "%";
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>
txtGasAdd.text = "<22><><EFBFBD><EFBFBD><EFBFBD>ӳɣ<D3B3>" + player.gasAdd.ToString("F1") + "%";
//<2F><>ʯ<EFBFBD>ӳ<EFBFBD>
txtStone.text="<22><>ʯ<EFBFBD>ӳɣ<D3B3>"+player.stoneAdd.ToString("F1") + "%";
}
/// <summary>
/// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><E3B9BB><EFBFBD><EFBFBD>
/// </summary>
private void GasIsEnough()
{
if (player.stateId>=GameDataMgr.Instance.userUpGradeInfo.Count)
{
UserPanelTip("<22>Ѵ<D1B4><EFB5BD><EFBFBD>߾<EFBFBD><DFBE><EFBFBD>");
return;
}
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (player.gas >= GameDataMgr.Instance.userUpGradeInfo[player.stateId+1].gas)
{
UserPanelTip(<>Ƴɹ<C6B3>");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CalcUserData(player.stateId);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>º󣬸<C2BA><F3A3ACB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>
UpdatePanel();
//<2F><><EFBFBD><EFBFBD>Toppanel<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UIManager.Instance.GetPanel<TopPanel>().UpdatePanel();
}
else
{
UserPanelTip("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬ͻ<E3A3AC><CDBB>ʧ<EFBFBD><CAA7>");
}
}
/// <summary>
/// ͻ<>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĺ<DDB5><C4BA><EFBFBD>
/// </summary>
/// <param name="stateId"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>Id</param>
public void CalcUserData(int stateId)
{
UserUpgradeData user = GameDataMgr.Instance.userUpGradeInfo[stateId+1];
//ս<><D5BD><EFBFBD><EFBFBD><><D1AA>*10+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*20+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*20+ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int fighting = user.hp * 10 + user.atk * 20 + user.def * 20 + (user.minuteGas-player.minuteGas)*10;
player.figthing += fighting;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
player.gas -= user.gas;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
player.state = user.state;
player.hp += user.hp;
player.atk += user.atk;
player.def += user.def;
player.minuteGas = user.minuteGas;
player.stateId += 1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
GameDataMgr.Instance.PlayerDataSave();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
private void GasTip(int gas)
{
GameObject obj = PoolMgr.Instance.GetObj("Object/AddGasNum");
obj.transform.SetParent(gasTipPos, false);
obj.transform.localPosition = Vector3.zero;
obj.transform.localScale = Vector3.one;
obj.GetComponent<AddGasNum>().UpdateTxtInfo("<22><><EFBFBD><EFBFBD>+"+gas);
//ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UpdateGas();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
private void UserPanelTip(string str)
{
GameObject obj = PoolMgr.Instance.GetObj("Object/UserTipTool");
obj.transform.SetParent(tipPanelPos, false);
obj.transform.localPosition = Vector3.zero;
obj.transform.localScale = Vector3.one;
obj.GetComponent<UserTipTool>().UpdateTxtInfo(str);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public void UpdateGas()
{
if ((player.stateId + 1) > (GameDataMgr.Instance.userUpGradeInfo.Count - 1))
{
txtGas.text = GameMgr.Instance.SetNumber(player.gas) + "/" + "<22><>";
imgGasLen.sizeDelta = new Vector2(gasWide, imgGasLen.sizeDelta.y);
}
else
{
txtGas.text = player.gas + "/" + GameDataMgr.Instance.userUpGradeInfo[player.stateId + 1].gas;
if (player.gas >= GameDataMgr.Instance.userUpGradeInfo[player.stateId + 1].gas)
{
imgGasLen.sizeDelta = new Vector2(gasWide, imgGasLen.sizeDelta.y);
}
else
{
imgGasLen.sizeDelta = new Vector2(gasWide * player.gas / GameDataMgr.Instance.userUpGradeInfo[player.stateId + 1].gas, imgGasLen.sizeDelta.y);
}
}
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
void OnDestroy()
{
EventCenter.Instance.Claer(E_EventType.E_Pool_GasTip);
//<2F><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ
GameMgr.Instance.isUserNumAndGas = true;
}
}