バイト報酬の羽の付与処理追加

This commit is contained in:
kimura 2022-09-30 12:13:42 +09:00
parent 2a5d3dd8c6
commit 0c286fd8c8
4 changed files with 50 additions and 2 deletions

View File

@ -35,8 +35,8 @@ namespace MyGame.Scenes.Main.Scripts
var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, cityGameData.PartTimerElapsed);
coinText.text = coin.ToString();
heartText.text = heart.ToString();
shopCustomizeCoinText.text = 0.ToString();
shopCustomizeObject.SetActive(false);
shopCustomizeObject.SetActive(PartTimerManager.Instance.CheckEarningsCustomizeCoin(true));
shopCustomizeCoinText.text = "1";
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{

View File

@ -88,6 +88,7 @@ public class KitchenManager : MonoBehaviour
CoinManager.Instance.AddCoinForBulkOrder(coin, coinPos);
cityGameData.Coin = CoinManager.Instance.OwnCoin;
cityGameData.PartTimerElapsed -= partTimerElapsed;
globalGameData.ShopCustomizeCoin += PartTimerManager.Instance.GetCustomizeCoin();
GameDataManager.SaveGameData();
});
}

View File

@ -200,6 +200,7 @@ public sealed class GameData {
// バイト君
public int PartTimerLevel;
public int PartTimerElapsed; // ゲーム起動中経過時間
public int CustomizeCoinElapsed; // 羽の獲得用経過時間
// mission
[DataMember(Name = "Data1001")]

View File

@ -4,6 +4,7 @@ using System.Linq;
using UniRx;
using UniRx.Triggers;
using UnityEngine;
using Random = UnityEngine.Random;
namespace MyGame.Scripts
{
@ -11,6 +12,9 @@ namespace MyGame.Scripts
{
[SerializeField] private int updateTiming = 2;
[SerializeField] private int saveTiming = 10;
[SerializeField] private int shopCustomizeCoinTiming = 86400; // 1day
[SerializeField] private int targetCount = 3;
private int checkCount;
private float saveElapsed;
private List<GameData> partTimerList;
private void Start()
@ -34,6 +38,8 @@ namespace MyGame.Scripts
cityGameData.PartTimerElapsed += updateTiming;
}
GameDataManager.GameData.CustomizeCoinElapsed += updateTiming;
saveElapsed += updateTiming;
if (saveTiming < saveElapsed)
{
@ -66,6 +72,46 @@ namespace MyGame.Scripts
saveElapsed = 0f;
}
/// <summary>
/// バイト報酬の羽を取得
/// アプリ起動中の報酬受取回数によって付与を決める
/// </summary>
/// <returns></returns>
public int GetCustomizeCoin()
{
if (CheckEarningsCustomizeCoin())
{
checkCount = 0;
GameDataManager.GameData.CustomizeCoinElapsed -= shopCustomizeCoinTiming;
return 1;
}
return 0;
}
/// <summary>
/// 受取可能チェック
/// checkCountがTargetCount以上になれば受取可能
/// </summary>
/// <returns></returns>
public bool CheckEarningsCustomizeCoin(bool withCount = false)
{
#if UNITY_EDITOR
Debug.Log($"CustomizeCoinElapsed:{GameDataManager.GameData.CustomizeCoinElapsed}/{shopCustomizeCoinTiming} checkCount:{checkCount}/{targetCount}");
#endif
if (shopCustomizeCoinTiming <= GameDataManager.GameData.CustomizeCoinElapsed)
{
if (withCount)
{
checkCount++;
}
if (targetCount <= checkCount)
{
return true;
}
}
return false;
}
public static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed)
{
var coin = (int)Mathf.Min((float)partTimerData.sales / 10 * elapsed, partTimerData.maxSales);