备份CatanBuilding瘦身独立工程
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using GameCore;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Assertions;
|
||||
|
||||
namespace game
|
||||
{
|
||||
public class EventScratchTicketChainPackData : IChainPackData
|
||||
{
|
||||
private const int SlotCount = 6;
|
||||
private List<int> ChainList { get; set; }
|
||||
private Pack[] Packs { get; set; }
|
||||
public bool IsEndGame => ChainProgress > ChainList.Count - SlotCount;
|
||||
public int ChainListCount => ChainList.Count;
|
||||
private int m_ChainProgress = 0;
|
||||
public int ChainProgress
|
||||
{
|
||||
set
|
||||
{
|
||||
EventScratchTicketDataManager dataManager = GContext.container.Resolve<EventScratchTicketDataManager>();
|
||||
m_ChainProgress = value;
|
||||
dataManager.SetChainProgress(m_ChainProgress);
|
||||
}
|
||||
get
|
||||
{
|
||||
EventScratchTicketDataManager dataManager = GContext.container.Resolve<EventScratchTicketDataManager>();
|
||||
m_ChainProgress = dataManager.GetChainProgress();
|
||||
return m_ChainProgress;
|
||||
}
|
||||
}
|
||||
//public int ChainProgress { get; set; }
|
||||
public int EventId { get; set; }
|
||||
private DateTime ExpireTime { get; set; }
|
||||
public TimeSpan RemainingTime => ExpireTime - ZZTimeHelper.UtcNow();
|
||||
|
||||
public bool IsChainPackDepleted => ChainProgress >= ChainListCount;
|
||||
|
||||
public bool DoNeedPackRedPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!IsChainPackDepleted && ChainProgress < ChainListCount)
|
||||
return Packs[ChainProgress].IAPID == 0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public string RedPointKey => RedPointName.Home_ScratchTicket + ".pack";
|
||||
|
||||
public EventScratchTicketChainPackData(List<int> chainList, DateTime expireTime, Pack[] packs, int eventId, int chainProgress)
|
||||
{
|
||||
ChainList = chainList;
|
||||
ChainProgress = chainProgress;
|
||||
EventId = eventId;
|
||||
ExpireTime = expireTime;
|
||||
Packs = packs;
|
||||
}
|
||||
|
||||
public Pack GetChainPackByChainProgress(int chainProgress)
|
||||
{
|
||||
// Debug.Log($"[EventBreak] chainProgress: {chainProgress}");
|
||||
return Packs[chainProgress];
|
||||
}
|
||||
|
||||
public int GetChainProgressBySlotIdx(int slotIdx)
|
||||
{
|
||||
int res;
|
||||
if (ChainProgress > ChainList.Count - SlotCount)
|
||||
res = ChainList.Count - SlotCount + slotIdx;
|
||||
else
|
||||
res = ChainProgress + slotIdx;
|
||||
Assert.IsTrue(res < ChainList.Count, $"Progress {res} out of range: {ChainListCount}");
|
||||
// Debug.Log($"[EventBreak] slotIdx: {slotIdx}, chainProgress: {res}");
|
||||
return res;
|
||||
}
|
||||
|
||||
// Is this needed or what?
|
||||
public List<int> GetTokenProgressRewardAfterAddingToken(int tokenAdded)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void UploadData()
|
||||
{
|
||||
EventScratchTicketDataManager dataManager = GContext.container.Resolve<EventScratchTicketDataManager>();
|
||||
dataManager.ScratchTicketData.ChainPackProgress = ChainProgress;
|
||||
dataManager.SyncData();
|
||||
}
|
||||
|
||||
public void OnBuySuccess()
|
||||
{
|
||||
ChainProgress++;
|
||||
UploadData();
|
||||
}
|
||||
|
||||
public List<ItemData> GetItemsByPackDropId(int dropId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user