218 lines
7.2 KiB
C#
218 lines
7.2 KiB
C#
|
using UnityEngine;
|
|||
|
using System.Collections;
|
|||
|
using GCGame.Table;
|
|||
|
using Module.Log;
|
|||
|
|
|||
|
public class JudgeMoneyLogic : MonoBehaviour
|
|||
|
{
|
|||
|
public static JudgeMoneyLogic Instance;
|
|||
|
void Awake()
|
|||
|
{
|
|||
|
Instance = this;
|
|||
|
}
|
|||
|
|
|||
|
void OnDestroy()
|
|||
|
{
|
|||
|
Instance = null;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 判断当前需要消耗类型的货币是否充足(参数1. 当前所需货币类型 2.当前所需类型货币的数量) (不足操作 :1.首充 2.VIP 3.累计充值, 4.正常购买灵玉)
|
|||
|
/// </summary>
|
|||
|
/// <param name="type">货币类型</param>
|
|||
|
/// <param name="count">货币需求数量</param>
|
|||
|
/// <returns></returns>
|
|||
|
public static bool IsMoneyEnough(MONEYTYPE type, long count)
|
|||
|
{
|
|||
|
if((int)type > (int)MONEYTYPE.MONEYTYPE_COIN_BIND || (int)type < (int)MONEYTYPE.MONEYTYPE_COIN)
|
|||
|
{
|
|||
|
if (type == MONEYTYPE.MONEYTYPE_USERCHALLENGE)
|
|||
|
{
|
|||
|
if (count >= 0 && GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(type) < count)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData("#{1409}");
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (type == MONEYTYPE.MONEYTYPE_SNATCHSCORE)
|
|||
|
{
|
|||
|
if (count >= 0 && GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(type) < count)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData("#{1410}");
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
LogModule.DebugLog("Money cnt:" + GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(type) + "," + count);
|
|||
|
|
|||
|
MONEYTYPE _LessMoneyType = type;
|
|||
|
|
|||
|
//MONEYTYPE_COIN_BIND 银票不足可以用银两代替,反之不行
|
|||
|
if (type == MONEYTYPE.MONEYTYPE_COIN_BIND)
|
|||
|
{
|
|||
|
if (count >= 0 &&
|
|||
|
GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(MONEYTYPE.MONEYTYPE_COIN) +
|
|||
|
GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(MONEYTYPE.MONEYTYPE_COIN_BIND) >= count)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}else
|
|||
|
{
|
|||
|
GUIData.AddNotifyData("#{6107}");
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (type == MONEYTYPE.MONEYTYPE_COIN)
|
|||
|
{
|
|||
|
if (count >= 0 &&
|
|||
|
GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(MONEYTYPE.MONEYTYPE_COIN) +
|
|||
|
GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(MONEYTYPE.MONEYTYPE_COIN_BIND) >= count)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
_LessMoneyType = MONEYTYPE.MONEYTYPE_COIN;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (count >= 0 && GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(type) >= count)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if ((int)type < (int)MONEYTYPE.MONEYTYPE_COIN || (int)type > (int)MONEYTYPE.MONEYTYPE_COIN_BIND)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
if (type == MONEYTYPE.MONEYTYPE_YUANBAO)
|
|||
|
{
|
|||
|
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{42600}"), "", delegate ()
|
|||
|
{
|
|||
|
OpenRechargePanel();
|
|||
|
},
|
|||
|
delegate ()
|
|||
|
{
|
|||
|
UIManager.CloseUI(UIInfo.MessageBox);
|
|||
|
});
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ShowSwitchMoneyPanel(_LessMoneyType);
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
public static void ShowSwitchMoneyPanel(MONEYTYPE type, bool ignoreTip)
|
|||
|
{
|
|||
|
switch(type)
|
|||
|
{
|
|||
|
case MONEYTYPE.MONEYTYPE_YUANBAO: //充值
|
|||
|
OpenRechargePanel();
|
|||
|
CloseSwitchWindow();
|
|||
|
break;
|
|||
|
default: //兑换
|
|||
|
|
|||
|
if (type == MONEYTYPE.MONEYTYPE_COIN_BIND)
|
|||
|
return;
|
|||
|
|
|||
|
UIManager.ShowUI(UIInfo.SwitchMoneyPanl, delegate (bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
SwitchMoneyPanlCtr.Instance.InitAimMoneyType(type);
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
public static bool IsMoneyEnoughWhenSwitch(int val)
|
|||
|
{
|
|||
|
var rebateDic = TableManager.GetCurrencyExchange();
|
|||
|
Tab_CurrencyExchange info;
|
|||
|
if (rebateDic.TryGetValue((int)MONEYTYPE.MONEYTYPE_YUANBAO, out info))
|
|||
|
{
|
|||
|
var lingyuToYuanbaoRebate = info.GetMoneybyIndex((int)MONEYTYPE.MONEYTYPE_YUANBAO_BIND);
|
|||
|
if (GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(MONEYTYPE.MONEYTYPE_YUANBAO_BIND) / lingyuToYuanbaoRebate >= val
|
|||
|
|| GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType(MONEYTYPE.MONEYTYPE_YUANBAO) >= val)
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
public static void OpenRechargePanel()
|
|||
|
{
|
|||
|
if (YuanBaoShopLogic.Instance() && YuanBaoShopLogic.Instance().gameObject.activeInHierarchy)
|
|||
|
{
|
|||
|
YuanBaoShopLogic.Instance()._TagPanel.ShowPage(3); //充值界面
|
|||
|
|
|||
|
//特权VIP界面需要返回充值界面
|
|||
|
if (VipInfo.Instance)
|
|||
|
{
|
|||
|
VipInfo.Instance.ShowYBPanel();
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
UIManager.ShowUI(UIInfo.YuanBaoShop, delegate (bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
YuanBaoShopLogic.Instance()._TagPanel.ShowPage(3); //充值界面
|
|||
|
//特权VIP界面需要返回充值界面
|
|||
|
if (VipInfo.Instance)
|
|||
|
{
|
|||
|
VipInfo.Instance.ShowYBPanel();
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
//关闭交换界面
|
|||
|
if (SwitchMoneyPanlCtr.Instance && SwitchMoneyPanlCtr.Instance.gameObject.activeInHierarchy)
|
|||
|
{
|
|||
|
UIManager.CloseUI(UIInfo.SwitchMoneyPanl);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void ShowSwitchMoneyPanel(MONEYTYPE type)
|
|||
|
{
|
|||
|
string lessMoneyName = "";
|
|||
|
switch (type)
|
|||
|
{
|
|||
|
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
|
|||
|
lessMoneyName = StrDictionary.GetClientDictionaryString("#{42601}");;
|
|||
|
break;
|
|||
|
case MONEYTYPE.MONEYTYPE_COIN:
|
|||
|
lessMoneyName = StrDictionary.GetClientDictionaryString("#{42602}");
|
|||
|
break;
|
|||
|
case MONEYTYPE.MONEYTYPE_COIN_BIND:
|
|||
|
lessMoneyName = StrDictionary.GetClientDictionaryString("#{42603}");
|
|||
|
break;
|
|||
|
}
|
|||
|
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{42604}", lessMoneyName), "", delegate ()
|
|||
|
{
|
|||
|
UIManager.ShowUI(UIInfo.SwitchMoneyPanl, delegate (bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
SwitchMoneyPanlCtr.Instance.InitAimMoneyType(type);
|
|||
|
}
|
|||
|
});
|
|||
|
}, delegate ()
|
|||
|
{
|
|||
|
UIManager.CloseUI(UIInfo.SwitchMoneyPanl);
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public static void CloseSwitchWindow()
|
|||
|
{
|
|||
|
UIManager.CloseUI(UIInfo.SwitchMoneyPanl);
|
|||
|
}
|
|||
|
}
|