//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, July 18, 2018
|
//--------------------------------------------------------
|
using Snxxz.UI;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Text.RegularExpressions;
|
using TableConfig;
|
using UnityEngine;
|
|
[XLua.LuaCallCSharp]
|
public class LimitedTimePackageItemClassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
|
{
|
public Dictionary<int, int> DicBuyPackage = new Dictionary<int, int>();
|
public event Action UpdateLimitedTimePackageItem;
|
public event Action<int> onStateUpate;
|
public override void Init()
|
{
|
OpenServerActivityCenter.Instance.Register(7, this);
|
OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
|
}
|
private const int Redpoint_key1 = 20907;
|
public Redpoint redPointStre1 = new Redpoint(209, Redpoint_key1);//限时礼包红点
|
public bool IsOpen
|
{
|
get
|
{
|
return IsExpired();
|
}
|
}
|
|
public bool priorityOpen
|
{
|
get
|
{
|
return false;
|
}
|
}
|
|
public bool IsAdvance
|
{
|
get
|
{
|
return OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage);
|
}
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
DicBuyPackage.Clear();
|
}
|
public override void UnInit()
|
{
|
|
}
|
public void OnPlayerLoginOk()
|
{
|
OperationTimeHepler.Instance.operationStartEvent -= operationStartEvent;
|
OperationTimeHepler.Instance.operationStartEvent += operationStartEvent;
|
OperationTimeHepler.Instance.operationAdvanceEvent -= operationAdvanceEvent;
|
OperationTimeHepler.Instance.operationAdvanceEvent += operationAdvanceEvent;
|
IsShowTip();
|
|
}
|
|
|
|
private void operationStartEvent(Operation arg1, int arg2)
|
{
|
if (arg1 == Operation.GiftPackage)
|
{
|
IsShowTip();
|
if (arg2 == 0 && onStateUpate != null)
|
{
|
onStateUpate(7);
|
}
|
}
|
}
|
private void operationAdvanceEvent(Operation obj)
|
{
|
if (obj == Operation.GiftPackage)
|
{
|
// IsShowTip();
|
if (onStateUpate != null)
|
{
|
onStateUpate(7);
|
}
|
}
|
}
|
private void OperationEndEvent(Operation arg1, int arg2)
|
{
|
if (arg1 == Operation.GiftPackage && arg2 == 0)
|
{
|
if (onStateUpate != null)
|
{
|
onStateUpate(7);
|
}
|
}
|
}
|
|
public void IsShowTip()
|
{
|
if (OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage))
|
{
|
return;
|
}
|
int GetDayOfYear = DateTime.Now.DayOfYear;
|
int day = LocalSave.GetInt("IsOpenLimitedTime");
|
bool Isbool = IsExpired();
|
if (day != GetDayOfYear && IsExpired())
|
{
|
// LocalSave.SetInt("IsOpenLimitedTime", GetDayOfYear);
|
redPointStre1.state = RedPointState.Simple;
|
}
|
else
|
{
|
redPointStre1.state = RedPointState.None;
|
}
|
|
}
|
public void BuyCoutList(HAA13_tagMCFlashGiftbagPlayerInfo Info)
|
{
|
|
for (int i = 0; i < Info.Count; i++)
|
{
|
if (DicBuyPackage.ContainsKey((int)Info.BuyCountList[i].GiftbagID))
|
{
|
DicBuyPackage[(int)Info.BuyCountList[i].GiftbagID] = (int)Info.BuyCountList[i].BuyCount;
|
}
|
else
|
{
|
DicBuyPackage.Add((int)Info.BuyCountList[i].GiftbagID, (int)Info.BuyCountList[i].BuyCount);
|
}
|
}
|
if (UpdateLimitedTimePackageItem != null)
|
{
|
UpdateLimitedTimePackageItem();
|
}
|
if (onStateUpate != null)
|
{
|
onStateUpate(7);
|
}
|
}
|
public void OpenFreePlat(string Title, float RMBNum, string OrderInfo)
|
{
|
if (!WindowCenter.Instance.IsOpen<GotoChargeWin>())
|
{
|
WindowCenter.Instance.Open<GotoChargeWin>(true);
|
}
|
SDKUtility.Instance.FreePlatformPay(Title, RMBNum, OrderInfo);
|
// DesignDebug.LogErrorFormat("礼包标题{0},所需金额{1},商品编号{2}", Title, RMBNum, OrderInfo);
|
}
|
|
public bool IsExpired()
|
{
|
bool IsBool = false;
|
IsBool = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.GiftPackage) || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage));
|
bool IsBuyBool = false;
|
OperationBase operationBase;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
|
{
|
GiftPackageClass operation = operationBase as GiftPackageClass;
|
GiftPackageClass.Gift_Package gift;
|
if (operation.TryGetGift(TimeUtility.ServerNow, out gift))
|
{
|
if (gift.gifts.Length > 0)
|
{
|
int BuyCountLimit = gift.gifts[0].limitNum;//限购数量
|
int GiftID = gift.gifts[0].id;//礼包ID
|
if (DicBuyPackage.ContainsKey(GiftID) && DicBuyPackage[GiftID] >= BuyCountLimit)
|
{
|
IsBuyBool = true;
|
}
|
}
|
}
|
}
|
if (IsBool && !IsBuyBool)
|
{
|
return true;
|
}
|
else
|
{
|
return false;
|
}
|
}
|
|
}
|
|
|
|
|
|