249 lines
8.5 KiB
C#
249 lines
8.5 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using UnityEngine.UI;
|
|
using GCGame.Table;
|
|
using System.Collections.Generic;
|
|
|
|
public class SwitchMoneyPanlCtr : MonoBehaviour {
|
|
#region UI拖拽控件
|
|
public GameObject[] menuItem;
|
|
public GameObject[] menuItemMarkIcon;
|
|
//public Text switchCount;
|
|
public UINumBoardInput numBoard;
|
|
public Text desc;
|
|
|
|
public Text fromMoney; //起始兑换数量
|
|
public Text toMoney; //最终可以兑换的数量
|
|
|
|
public Image fromMoneyIcon;
|
|
public Image toMoneyIcon;
|
|
|
|
public Text remainJade;
|
|
public Image remainJageIcon;
|
|
public Text remainYuanbao;
|
|
public Image remainYunbaoIcon;
|
|
|
|
#endregion
|
|
|
|
private int maxInputNum = 9999;
|
|
|
|
public static SwitchMoneyPanlCtr Instance;
|
|
private void Awake()
|
|
{
|
|
Instance = this;
|
|
GUIData.delMoneyChanged += RefreshRemainMoneyCount;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
Instance = null;
|
|
GUIData.delMoneyChanged -= RefreshRemainMoneyCount;
|
|
}
|
|
|
|
public void OnEnable()
|
|
{
|
|
LoadRebeat();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
SetRemainMoneyIcon();
|
|
}
|
|
|
|
public void SetRemainMoneyIcon()
|
|
{
|
|
LoadAssetBundle.Instance.SetImageSprite(remainJageIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO));
|
|
remainJageIcon.SetNativeSize();
|
|
LoadAssetBundle.Instance.SetImageSprite(remainYunbaoIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO_BIND));
|
|
remainYunbaoIcon.SetNativeSize();
|
|
}
|
|
|
|
private int lingyuToYuanbaoRebate = 0; //灵玉-》元宝
|
|
private int lingyuToYinliangRebate = 0; //灵玉-》银两
|
|
private int yuanbaoToYinpiaoRebate = 0; //元宝-》银票
|
|
|
|
public void LoadRebeat()
|
|
{
|
|
var rebateDic = TableManager.GetCurrencyExchange();
|
|
Tab_CurrencyExchange info;
|
|
if (rebateDic.TryGetValue((int) MONEYTYPE.MONEYTYPE_YUANBAO, out info))
|
|
{
|
|
lingyuToYuanbaoRebate = info.GetMoneybyIndex((int)MONEYTYPE.MONEYTYPE_YUANBAO_BIND);
|
|
lingyuToYinliangRebate = info.GetMoneybyIndex((int)MONEYTYPE.MONEYTYPE_COIN);
|
|
}
|
|
if (rebateDic.TryGetValue((int) MONEYTYPE.MONEYTYPE_YUANBAO_BIND, out info))
|
|
{
|
|
yuanbaoToYinpiaoRebate = info.GetMoneybyIndex((int)MONEYTYPE.MONEYTYPE_COIN_BIND);
|
|
}
|
|
}
|
|
|
|
private int _CurSelectType;
|
|
public void OnMenuItemClick(int type)
|
|
{
|
|
_CurSelectType = type;
|
|
|
|
switch(type)
|
|
{
|
|
case 1:
|
|
aimType = MONEYTYPE.MONEYTYPE_YUANBAO_BIND;
|
|
LoadAssetBundle.Instance.SetImageSprite(toMoneyIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO_BIND));
|
|
break;
|
|
case 2:
|
|
aimType = MONEYTYPE.MONEYTYPE_COIN;
|
|
LoadAssetBundle.Instance.SetImageSprite(toMoneyIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_COIN));
|
|
break;
|
|
default:
|
|
aimType = MONEYTYPE.MONEYTYPE_COIN_BIND;
|
|
LoadAssetBundle.Instance.SetImageSprite(toMoneyIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_COIN_BIND));
|
|
break;
|
|
}
|
|
|
|
toMoneyIcon.SetNativeSize();
|
|
SetRemainIcon();
|
|
RefreshRemainMoneyCount();
|
|
|
|
for (int index = 0; index < menuItem.Length; index++)
|
|
{
|
|
menuItemMarkIcon[index].gameObject.SetActive(index == ((int)type - 1));
|
|
}
|
|
InitFromMoneyIcon();
|
|
InitSwitchCountText();
|
|
}
|
|
|
|
public void InitFromMoneyIcon() //初始钱类型Icon
|
|
{
|
|
switch (_CurSelectType)
|
|
{
|
|
case 1:
|
|
case 2:
|
|
LoadAssetBundle.Instance.SetImageSprite(fromMoneyIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO));
|
|
maxInputNum = (int)GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao();
|
|
numBoard.Init(1, 1, maxInputNum == 0 ? 1 : maxInputNum);
|
|
break;
|
|
default:
|
|
LoadAssetBundle.Instance.SetImageSprite(fromMoneyIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO_BIND));
|
|
maxInputNum = (int)GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBaoBind();
|
|
numBoard.Init(1, 1, maxInputNum == 0 ? 1 : maxInputNum);
|
|
break;
|
|
}
|
|
fromMoneyIcon.SetNativeSize();
|
|
}
|
|
|
|
private MONEYTYPE aimType;
|
|
public void InitAimMoneyType(MONEYTYPE moneyType)
|
|
{
|
|
aimType = moneyType;
|
|
|
|
if (aimType == MONEYTYPE.MONEYTYPE_COIN) //兑换元宝、银两的时候不能用元宝进行兑换
|
|
{
|
|
OnMenuItemClick(2);
|
|
}//else if (aimType == MONEYTYPE.MONEYTYPE_COIN_BIND) //兑换银票的时候不能用灵玉进行兑换
|
|
//{
|
|
// OnMenuItemClick(3);
|
|
//}
|
|
else
|
|
{
|
|
OnMenuItemClick(1); //灵玉兑换元宝
|
|
}
|
|
}
|
|
|
|
private int count = 1;
|
|
|
|
private long curTypeMoneyOwnCount = 0;
|
|
public void InitSwitchCountText()
|
|
{
|
|
count = numBoard.Value;
|
|
switch (_CurSelectType)
|
|
{
|
|
case 1:
|
|
case 2:
|
|
curTypeMoneyOwnCount = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao();
|
|
maxInputNum = (int)GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao();
|
|
numBoard.Init(count < 1 ? 1 : count, 1, maxInputNum == 0 ? 1 : maxInputNum);
|
|
break;
|
|
default:
|
|
curTypeMoneyOwnCount = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBaoBind();
|
|
maxInputNum = (int)GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBaoBind();
|
|
numBoard.Init(count < 1 ? 1 : count, 1, maxInputNum == 0 ? 1 : maxInputNum);
|
|
break;
|
|
}
|
|
if (curTypeMoneyOwnCount < count)
|
|
{
|
|
fromMoney.text = "<color=#82439c>" + count + "</color>";
|
|
}else
|
|
{
|
|
fromMoney.text = count + "";
|
|
}
|
|
SetCanGetAimMoneyCount();
|
|
}
|
|
|
|
// 可以得到的目标金钱的数量
|
|
private int canGetCount = 0;
|
|
public void SetCanGetAimMoneyCount()
|
|
{
|
|
switch(_CurSelectType)
|
|
{
|
|
case 1:
|
|
case 2:
|
|
{
|
|
switch(aimType)
|
|
{
|
|
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND: //灵玉兑换元宝
|
|
{
|
|
toMoney.text = count * lingyuToYuanbaoRebate + "";
|
|
}
|
|
break;
|
|
case MONEYTYPE.MONEYTYPE_COIN: //灵玉兑换银两
|
|
{
|
|
toMoney.text = count * lingyuToYinliangRebate + "";
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
case 3: //元宝兑换银票
|
|
{
|
|
toMoney.text = count * yuanbaoToYinpiaoRebate + "";
|
|
}
|
|
break;
|
|
}
|
|
canGetCount = int.Parse(toMoney.text);
|
|
}
|
|
public void OnSwitchBtnClick()
|
|
{
|
|
var srcType = _CurSelectType == 1 || _CurSelectType == 2 ? MONEYTYPE.MONEYTYPE_YUANBAO : MONEYTYPE.MONEYTYPE_YUANBAO_BIND;
|
|
if (srcType == MONEYTYPE.MONEYTYPE_YUANBAO) //灵玉不足进入充值界面
|
|
{
|
|
if (!JudgeMoneyLogic.IsMoneyEnough(MONEYTYPE.MONEYTYPE_YUANBAO, count))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
CG_REQ_EXCHANGE_MONEY ask = (CG_REQ_EXCHANGE_MONEY)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_EXCHANGE_MONEY);
|
|
ask.SetSrcType((int)srcType);
|
|
ask.SetDstType((int)aimType);
|
|
ask.SetExNum(canGetCount);
|
|
ask.SendPacket();
|
|
}
|
|
|
|
public void SetRemainIcon()
|
|
{
|
|
LoadAssetBundle.Instance.SetImageSprite(remainJageIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO));
|
|
LoadAssetBundle.Instance.SetImageSprite(remainYunbaoIcon, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO_BIND));
|
|
}
|
|
|
|
// 设置剩余的数量(在协议返回的地方调用)
|
|
public void RefreshRemainMoneyCount()
|
|
{
|
|
remainJade.text = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao() + "";
|
|
remainYuanbao.text = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBaoBind() + "";
|
|
InitSwitchCountText();
|
|
}
|
|
|
|
public void OnCloseBenClick()
|
|
{
|
|
UIManager.CloseUI(UIInfo.SwitchMoneyPanl);
|
|
}
|
|
}
|