using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class UICurrencyItem : UIItemBase
{
public enum CURRENCY_TYPE
{
NONE,
YUANBAO,
YUANBAO_BIND,
TONGQIAN,
TONGQIAN_BIND,
}
#region
public Image _CurrencyIcon;
public Text _CurrencyValue;
private string curColor = ""; // 每次显示数字,可以指定颜色,用完后自动设置回白色。
private MONEYTYPE _CurrencyType;
private long _CurrencyIntValue;
public long CurrencyIntValue
{
get
{
return _CurrencyIntValue;
}
}
#endregion
//设置颜色
public void SetColor(string color)
{
curColor = color;
}
private void ResetColor()
{
curColor = "";
}
#region
public void ShowCurrency(MONEYTYPE currencyType, int currencyValue)
{
_CurrencyIcon.gameObject.SetActive(true);
if (GetCurrencySprite(currencyType) != "")
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(currencyType));
else
_CurrencyIcon.gameObject.SetActive(false);
_CurrencyValue.text = curColor + currencyValue.ToString() + "";
_CurrencyIntValue = currencyValue;
_CurrencyType = currencyType;
ResetColor();
}
public void ShowCurrency(MONEYTYPE currencyType, long currencyValue)
{
_CurrencyIcon.gameObject.SetActive(true);
if (GetCurrencySprite(currencyType) != "")
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(currencyType));
else
_CurrencyIcon.gameObject.SetActive(false);
_CurrencyValue.text = curColor + currencyValue.ToString() + "";
_CurrencyIntValue = (int)currencyValue;
_CurrencyType = currencyType;
ResetColor();
}
public void ShowCurrency(int consumType, int consumID, int consumValue)
{
if ((int)CONSUM_TYPE.MONEY == consumType)
{
ShowCurrency((MONEYTYPE)consumID, consumValue);
}
else if ((int)CONSUM_TYPE.PROPVAL == consumType)
{
if ((int)PropID.PropertyID.PRIVATEEXP == consumID)
{
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(MONEYTYPE.MONEYTYPE_SKILLEXP));
_CurrencyValue.text = curColor + consumValue.ToString() + "";
_CurrencyIntValue = consumValue;
}
else if ((int)PropID.PropertyID.PROPUSER_EXP == consumID)
{
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(MONEYTYPE.MONEYTYPE_ROLEEXP));
_CurrencyValue.text = curColor + consumValue.ToString() + "";
_CurrencyIntValue = consumValue;
}
}
else if ((int)CONSUM_TYPE.SCORE == consumType)
{
if ((int)SCORE_TYPE.GUILD_SCORE == consumID)
{
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetScoreSprite(SCORE_TYPE.GUILD_SCORE));
_CurrencyValue.text = curColor + consumValue.ToString() + "";
_CurrencyIntValue = consumValue;
}
}
ResetColor();
}
public void ShowCurrency(int consumType, int consumID, long consumValue)
{
if ((int)CONSUM_TYPE.PROPVAL == consumType)
{
if ((int)PropID.PropertyID.PRIVATEEXP == consumID)
{
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(MONEYTYPE.MONEYTYPE_SKILLEXP));
_CurrencyValue.text = curColor + consumValue.ToString() + "";
_CurrencyIntValue = (int)consumValue;
}
else if ((int)PropID.PropertyID.PROPUSER_EXP == consumID)
{
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(MONEYTYPE.MONEYTYPE_ROLEEXP));
_CurrencyValue.text = curColor + consumValue.ToString() + "";
_CurrencyIntValue = (int)consumValue;
}
}
else if ((int)CONSUM_TYPE.MONEY == consumType)
{
ShowCurrency((MONEYTYPE)consumID, consumValue);
}
ResetColor();
}
public void ShowOwnCurrency(MONEYTYPE currencyType)
{
long Ownvalue = 0;
if ((int)currencyType >= 413 && (int)currencyType <= 418) //属性货币 //写死的特殊判断,以后添加属性货币这里要修改
{
Ownvalue = GameManager.gameManager.PlayerDataPool.GetPropInt((PropID.PropertyID)currencyType);
}
else
{
Ownvalue = GameManager.gameManager.PlayerDataPool.GetLongPropty((int)CONSUM_TYPE.MONEY, (int)currencyType);
}
LoadAssetBundle.Instance.SetImageSprite(_CurrencyIcon, GetCurrencySprite(currencyType));
_CurrencyValue.text = curColor + Ownvalue.ToString() + "";
_CurrencyIntValue = Ownvalue;
_CurrencyType = currencyType;
ResetColor();
}
public void ShowReplaceOwnCurrency(int consumType, int consumID, int value = 0)
{
if ((int)CONSUM_TYPE.MONEY == consumType)
{
if (consumID == (int)MONEYTYPE.MONEYTYPE_COIN_BIND)
{
if (value > 0)
{
ShowCurrency(MONEYTYPE.MONEYTYPE_COIN, value);
}
else
{
var Ownvalue = GameManager.gameManager.PlayerDataPool.GetLongPropty(consumType, (int)MONEYTYPE.MONEYTYPE_COIN);
ShowCurrency(MONEYTYPE.MONEYTYPE_COIN, Ownvalue);
}
return;
}
}
else if ((int)CONSUM_TYPE.PROPVAL == consumType)
{
if ((int)PropID.PropertyID.PRIVATEEXP == consumID)
{
if (value > 0)
{
ShowCurrency(consumType, (int)PropID.PropertyID.PROPUSER_EXP, value);
}
else
{
var Ownvalue = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Exp;
ShowCurrency(consumType, (int)PropID.PropertyID.PROPUSER_EXP, Ownvalue);
}
return;
}
}
else if ((int)CONSUM_TYPE.SCORE == consumType)
{
if ((int)SCORE_TYPE.GUILD_SCORE == consumID)
{
ShowCurrency(consumType, consumID, value);
}
}
else
{
ShowCurrency(consumType, consumID, value);
}
}
///
/// 使用替代货币和所需货币比较并显示。
///
/// 货币主类型
/// 货币次级类型
/// 需要比较的数目
public void ShowReplaceOwnCurrencyCompare(int consumType, int consumID, int compareTo = 0)
{
if ((int)CONSUM_TYPE.MONEY == consumType)
{
if (consumID == (int)MONEYTYPE.MONEYTYPE_COIN_BIND)
{
var ownValue = GameManager.gameManager.PlayerDataPool.GetLongPropty(consumType, (int)MONEYTYPE.MONEYTYPE_COIN);
if (ownValue < compareTo)
{
SetColor("");
}
ShowCurrency(MONEYTYPE.MONEYTYPE_COIN, ownValue);
return;
}
}
else if ((int)CONSUM_TYPE.PROPVAL == consumType)
{
if ((int)PropID.PropertyID.PRIVATEEXP == consumID)
{
var ownValue = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Exp;
if (ownValue < compareTo)
{
SetColor("");
}
ShowCurrency(consumType, (int)PropID.PropertyID.PROPUSER_EXP, ownValue);
return;
}
}
// 以下代码和 ShowReplaceOwnCurrency 一致,并未添加新功能。原因:尚不知道下方货币使用逻辑。
else if ((int)CONSUM_TYPE.SCORE == consumType)
{
if ((int)SCORE_TYPE.GUILD_SCORE == consumID)
{
int ownValue = GameManager.gameManager.PlayerDataPool.GuildInfo.GuildContribute;
if (ownValue < compareTo)
{
SetColor("");
}
ShowCurrency(consumType, consumID, ownValue);
return;
}
}
else
{
ShowCurrency(consumType, consumID, compareTo);
}
}
public void ShowCurrency(int value)
{
_CurrencyValue.text = curColor + value.ToString() + "";
_CurrencyIntValue = value;
ResetColor();
}
public static string GetScoreSprite(SCORE_TYPE guildScore)
{
string spriteName = "";
if (guildScore == SCORE_TYPE.GUILD_SCORE)
{
spriteName = "banggong";
}
return spriteName;
}
public static string GetMoneyItemIcon(MONEYTYPE currencyType)
{
string spriteName = "";
switch (currencyType)
{
case MONEYTYPE.MONEYTYPE_COIN:
spriteName = "yinliang01";
break;
case MONEYTYPE.MONEYTYPE_YUANBAO:
spriteName = "lingyu01";
break;
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
spriteName = "yuanbao01";
break;
case MONEYTYPE.MONEYTYPE_COIN_BIND:
spriteName = "yinpiao01";
break;
}
return spriteName;
}
public static string GetCurrencySprite(MONEYTYPE currencyType)
{
string spriteName = "";
switch(currencyType)
{
case MONEYTYPE.MONEYTYPE_COIN:
spriteName = "qian1";
break;
case MONEYTYPE.MONEYTYPE_YUANBAO:
spriteName = "qian2";
break;
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
spriteName = "qian3";
break;
case MONEYTYPE.MONEYTYPE_COIN_BIND:
spriteName = "qian4";
break;
case MONEYTYPE.MONEYTYPE_SKILLEXP:
spriteName = "skillExp";
break;
case MONEYTYPE.MONEYTYPE_ROLEEXP:
spriteName = "roleExp";
break;
case MONEYTYPE.MONEYTYPE_USERCHALLENGE:
spriteName = "menpaiCoin";
break;
case MONEYTYPE.MONEYTYPE_SNATCHSCORE:
spriteName = "duobaoCoin";
break;
}
// 关宁(或叫演武)积分
if((int)currencyType == (int)PropID.PropertyID.GUANNING)
{
spriteName = "yanwuCoin";
}
else if((int)currencyType == (int)PropID.PropertyID.CROSSSERVERSCORE)
{
spriteName = "kuafuCoin";
}
else if ((int)currencyType == (int)PropID.PropertyID.EXPERIMENTSCORE)
{
spriteName = "shilianCoin";
}
else if((int)currencyType == (int)PropID.PropertyID.BOSSCORE)
{
spriteName = "bosscoin";
}
else if ((int)currencyType == 437)//紫禁之巅积分
{
spriteName = "zijincoin";
}
return spriteName;
}
#endregion
public void OnBtnAddClick()
{
if((int)_CurrencyType == (int)PropID.PropertyID.BOSSCORE)
{
UIManager.ShowUI(UIInfo.Boss);
return;
}
JudgeMoneyLogic.ShowSwitchMoneyPanel(_CurrencyType, true);
}
}