234 lines
6.5 KiB
C#
234 lines
6.5 KiB
C#
|
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;
|
|||
|
}
|
|||
|
}
|