diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs index 2935952e..431c430d 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs @@ -156,6 +156,7 @@ public class MissionManager : MonoBehaviour { return list.FirstOrDefault(data => !GameDataManager.GameData.AchievedMission.Contains(data.id)) ?? list.Last(); }); + latestMissionList = latestMissionList.Where(data => CheckAvailableMission(data, GameDataManager.GameData.MyRecipes)); foreach (var missionData in latestMissionList) { var missionView = listView.AddItemView(missionData); @@ -199,6 +200,36 @@ public class MissionManager : MonoBehaviour TransitionManager.Instance.LoadSceneAdditive(GameScenes.Mission); } + public static bool CheckAvailableMission(MissionData missionData, int[] myRecipe) + { + // 購入レシピなど所持判定 + switch (missionData.Condition) + { + case MissionCondition.NoriSoysourceSalesCount: + return myRecipe.Contains(20); + case MissionCondition.RareNoriSoysourceSalesCount: + return myRecipe.Contains(20); + case MissionCondition.SaltButterSalesCount: + return myRecipe.Contains(21); + case MissionCondition.RareSaltButterSalesCount: + return myRecipe.Contains(21); + case MissionCondition.StrawberryMilkSalesCount: + return myRecipe.Contains(22); + case MissionCondition.RareStrawberryMilkSalesCount: + return myRecipe.Contains(22); + case MissionCondition.SaltChocolateSalesCount: + return myRecipe.Contains(23); + case MissionCondition.RareSaltChocolateSalesCount: + return myRecipe.Contains(23); + case MissionCondition.ChocolateGreenteaSalesCount: + return myRecipe.Contains(24); + case MissionCondition.RareChocolateGreenteaSalesCount: + return myRecipe.Contains(24); + default: + return true; + } + } + public static int GetProgressValue(MissionData missionData) { var gameData = GameDataManager.GameData; diff --git a/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs b/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs index c39389db..2fda1228 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs @@ -122,7 +122,8 @@ public class GameDataObserver : SingletonMonoBehaviour } }); - // ポップコーン達成確認 + // ポップコーン販売達成確認 + // CheckAvailableMissionは行わない Observable.Merge( addSalesObserver.DistinctUntilChanged(), addRareSalesObserver.DistinctUntilChanged()) @@ -178,8 +179,9 @@ public class GameDataObserver : SingletonMonoBehaviour gameData.dailyMissionCompleted = false; gameData.ResetDailyTotalCount(); // 新ミッション登録 - var targetList = missionList.Where(data => - data.Category == MissionCategory.Daily && data.shopLevel <= gameData.ViewedShopLevel); + var targetList = missionList + .Where(data => data.Category == MissionCategory.Daily && data.shopLevel <= gameData.ViewedShopLevel) + .Where(data => MissionManager.CheckAvailableMission(data, GameDataManager.GameData.MyRecipes)); gameData.dailyMissionIdArray = targetList.ToList().RandomChoose(3).Select(data => data.id).ToArray(); gameData.lastDailyMissionSetTime = DateTime.UtcNow.ToBinary(); gameData.dailyLoginCount++;