バイト君の報酬(羽)の付与方法変更

This commit is contained in:
kimura 2022-11-04 15:17:47 +09:00
parent aceb1a5742
commit 7603bc9f38
3 changed files with 17 additions and 32 deletions

View File

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

View File

@ -200,7 +200,9 @@ public sealed class GameData {
// バイト君
public int PartTimerLevel;
public int PartTimerElapsed; // ゲーム起動中経過時間
public int CustomizeCoinElapsed; // 羽の獲得用経過時間
private int[] usedItemCondition;
public List<int> UsedItemCondition;
// mission
[DataMember(Name = "Data1001")]
@ -571,6 +573,7 @@ public sealed class GameData {
ScrollGameStageScoreList = ScrollGameStageScoreList ?? new List<ScrollGameScoreData>();
CityGameDataDict ??= new CityGameDataDict();
FundingDict ??= new FundingDict();
UsedItemCondition = usedItemCondition?.ToList() ?? new List<int>();
}
private Dictionary<int, int> ArrayToDictionary(KeyValueOfintint[] array){
var dictionary = new Dictionary<int, int>();
@ -587,6 +590,7 @@ public sealed class GameData {
// lastAdRewardTimeArray = lastAdRewardTimeList.ToArray();
achievedMission = AchievedMission.ToArray();
deliveredOrder = DeliveredOrder.ToArray();
usedItemCondition = UsedItemCondition.ToArray();
// CityGameData
foreach (var cityGameData in CityGameDataDict.Values)
{

View File

@ -12,9 +12,6 @@ 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()
@ -38,8 +35,6 @@ namespace MyGame.Scripts
cityGameData.PartTimerElapsed += updateTiming;
}
GameDataManager.GameData.CustomizeCoinElapsed += updateTiming;
saveElapsed += updateTiming;
if (saveTiming < saveElapsed)
{
@ -79,13 +74,15 @@ namespace MyGame.Scripts
/// <returns></returns>
public int GetCustomizeCoin()
{
if (CheckEarningsCustomizeCoin())
// 達成リスト
var list = ItemConditionUtils.GetGlobalList(ItemCondition.TotalHeart, GameDataUtils.GetTotalHeart(), RewardActionType.CustomizeCoin, true);
var rewardCount = 0;
list.ForEach(data =>
{
checkCount = 0;
GameDataManager.GameData.CustomizeCoinElapsed -= shopCustomizeCoinTiming;
return 1;
}
return 0;
rewardCount += data.value;
ItemConditionUtils.Use(data);
});
return rewardCount;
}
/// <summary>
@ -93,24 +90,7 @@ namespace MyGame.Scripts
/// 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 int CheckEarningsCustomizeCoin() => ItemConditionUtils.GetGlobalList(ItemCondition.TotalHeart, GameDataUtils.GetTotalHeart(), RewardActionType.CustomizeCoin, true).Sum(data => data.value);
public static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed)
{