상점 완료

This commit is contained in:
Ino 2025-09-05 22:22:04 +09:00
parent ca0d0e23d3
commit f73b345058
4 changed files with 59 additions and 6 deletions

View File

@ -25,7 +25,8 @@ namespace ES3Types
writer.WriteProperty("IsRemoveADS", instance.IsRemoveADS, ES3Type_bool.Instance);
writer.WriteProperty("GameSpeed", instance.GameSpeed, ES3Type_float.Instance);
writer.WriteProperty("ProductAdWatchedNumber", instance.ProductAdWatchedNumber, ES3Type_int.Instance);
writer.WriteProperty("FreeHeartCount", instance.FreeHeartCount, ES3Type_int.Instance);
writer.WriteProperty("ProductAdWatchedTime", instance.ProductAdWatchedTime, ES3Type_DateTime.Instance);
writer.WriteProperty("FreeHeartCount", instance.FreeHeartCount, ES3Type_int.Instance);
writer.WriteProperty("FreeKeyCount", instance.FreeKeyCount, ES3Type_int.Instance);
writer.WriteProperty("InterstitialADCount", instance.InterstitialADCount, ES3Type_int.Instance);
writer.WriteProperty("ImageOpenStates_Left", instance.ImageOpenStates_Left, ES3Type_boolArray.Instance);
@ -72,6 +73,9 @@ namespace ES3Types
case "ProductAdWatchedNumber":
instance.ProductAdWatchedNumber = reader.Read<System.Int32>(ES3Type_int.Instance);
break;
case "ProductAdWatchedTime":
instance.ProductAdWatchedTime = reader.Read<System.DateTime>(ES3Type_DateTime.Instance);
break;
case "FreeHeartCount":
instance.FreeHeartCount = reader.Read<System.Int32>(ES3Type_int.Instance);
break;

View File

@ -486,8 +486,8 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uB354 \uC774\uC0C1 \uAD11\uACE0 \uC2DC\uCCAD\uC744 \uD1B5\uD55C \r\n\uBB34\uB8CC
\uD558\uD2B8\uB97C \uC5BB\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
m_text: "\uAD11\uACE0 \uC2DC\uCCAD\uC744 \uD1B5\uD55C \uBB34\uB8CC \uD558\uD2B8\uB97C
\uC5BB\uC744 \uC218 \uC788\uB294\n\uC2DC\uAC04\uC774 \uB0A8\uC544\uC788\uC2B5\uB2C8\uB2E4."
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: cf1ae75e65a967946b23286a5ffbb812, type: 2}
m_sharedMaterial: {fileID: -6508382273668546854, guid: cf1ae75e65a967946b23286a5ffbb812, type: 2}

View File

@ -31,6 +31,7 @@ namespace CodeJay
/// <summary>Number of Watched Ad In Store(Ad Heart Product).</summary>
public int ProductAdWatchedNumber;
public DateTime ProductAdWatchedTime;
public int FreeHeartCount, FreeKeyCount;
public int InterstitialADCount;
@ -91,6 +92,7 @@ namespace CodeJay
this.IsRemoveADS = data.IsRemoveADS;
this.GameSpeed = data.GameSpeed;
this.ProductAdWatchedNumber = data.ProductAdWatchedNumber;
ProductAdWatchedTime = data.ProductAdWatchedTime;
this.FreeHeartCount = data.FreeHeartCount;
FreeKeyCount = data.FreeKeyCount;
this.InterstitialADCount = data.InterstitialADCount;
@ -231,6 +233,7 @@ public partial class DBManager : MonoBehaviour
public long BuyKeyCount { get => saveData.BuyKeyCount; }
public float GameSpeed { get => saveData.GameSpeed; set => saveData.GameSpeed = value; }
public int ProductAdWatchedNumber { get => saveData.ProductAdWatchedNumber; }
public DateTime ProductAdWatchedTime { get => saveData.ProductAdWatchedTime; }
public int FreeHeartCount { get => saveData.FreeHeartCount; }
public int FreeKeyCount { get => saveData.FreeKeyCount; }
public int NormalGameLevel { get => saveData.NormalGameLevel; }
@ -782,6 +785,10 @@ public partial class DBManager : MonoBehaviour
if (saveData != null)
{
saveData.ProductAdWatchedNumber -= min;
if (saveData.ProductAdWatchedNumber < 0)
saveData.ProductAdWatchedNumber = 0;
if (saveData.ProductAdWatchedNumber == 0)
saveData.ProductAdWatchedTime = InternetTime.Ins.Time.AddHours(1);
SaveDatas();
return saveData.ProductAdWatchedNumber;
@ -789,6 +796,14 @@ public partial class DBManager : MonoBehaviour
return 0;
}
public void ProductAdWatchedNumber_Plus()
{
if (saveData != null)
{
saveData.ProductAdWatchedNumber = 1;
SaveDatas();
}
}
public void ResetFreeHeartCount()
{

View File

@ -1,6 +1,7 @@
using CodeJay.Classes;
using CodeJay.Defines;
using System;
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
@ -264,11 +265,13 @@ public class ProductSlot : CardBase
private void SetADSButton()
{
StopAllCoroutines();
// 광고 이벤트 연결하기
GameManager.ADS.OnCompletedRewardedAd += OnCompletedRewardedAd;
DateTime loadTime = GameManager.Timer.LoadTime();
if (loadTime.Day != DateTime.Now.Day)
if (loadTime.Day != InternetTime.Ins.Time.Day)
{
GameManager.DB.ResetADSRewardActionCount();
GameManager.DB.ResetFreeHeartCount();
@ -276,7 +279,35 @@ public class ProductSlot : CardBase
}
else
{
GameManager.Timer.ActivateLoadSimpleTimer(name, Constants.ADS_TIMER_COUNT, OnStartTimer, OnPauseTimer, OnStopTimer, OnPassedTime);
if (GameManager.DB.ProductAdWatchedNumber <= 0)
StartCoroutine(Co_Time());
else
{
if (AdButton != null)
{
Color c = AdButton.GetComponent<Image>().color;
c.a = 1.0f;
AdButton.GetComponent<Image>().color = c;
}
SetADSRewardActionCountText(GameManager.DB.ProductAdWatchedNumber);
}
//GameManager.Timer.ActivateLoadSimpleTimer(name, Constants.ADS_TIMER_COUNT, OnStartTimer, OnPauseTimer, OnStopTimer, OnPassedTime);
}
}
IEnumerator Co_Time()
{
while (true)
{
yield return new WaitForSeconds(1f);
var cal = GameManager.DB.ProductAdWatchedTime - InternetTime.Ins.Time;
if (cal.TotalSeconds > 0)
AdNumberTMP.text = DSUtil.Get_TimeText_MS(cal);
else
{
GameManager.DB.ProductAdWatchedNumber_Plus();
SetData(_data);
}
}
}
@ -498,6 +529,8 @@ public class ProductSlot : CardBase
{
if (timerCount <= 0)
{
if (GameManager.DB.ProductAdWatchedNumber == 0)
GameManager.DB.ProductAdWatchedNumber_Plus();
SetADSRewardActionCountText(GameManager.DB.ProductAdWatchedNumber);
GameManager.Timer.DeactivateTimer(name);
//buyButton.onClick.AddListener(OnBuyButtonClicked);
@ -572,7 +605,8 @@ public class ProductSlot : CardBase
if (GameManager.DB.ProductAdWatchedNumber == 0)
{
GameManager.Timer.ActivateSimpleTimer(name, Constants.ADS_TIMER_COUNT, OnStartTimer, OnPauseTimer, OnStopTimer, OnPassedTime);
SetADSButton();
//GameManager.Timer.ActivateSimpleTimer(name, Constants.ADS_TIMER_COUNT, OnStartTimer, OnPauseTimer, OnStopTimer, OnPassedTime);
}
}
}