diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs index 16a21669..86f46585 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs @@ -81,8 +81,224 @@ public class MissionManager : MonoBehaviour return gameData.MyRecipes.Length; case MissionCondition.CoinConsumeCount: // コイン消費数 return gameData.TotalSubCoin; + case MissionCondition.BulkOrderDeliveredCount: + return gameData.BulkOrderDeliveredCount; case MissionCondition.SaltSalesCount: + return gameData.GetTotalSalesByFlavor(1); + case MissionCondition.RareSaltSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(1); + case MissionCondition.CaramelSalesCount: return gameData.GetTotalSalesByFlavor(2); + case MissionCondition.RareCaramelSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(2); + case MissionCondition.PepperSalesCount: + return gameData.GetTotalSalesByFlavor(3); + case MissionCondition.RarePepperSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(3); + case MissionCondition.HoneySalesCount: + return gameData.GetTotalSalesByFlavor(4); + case MissionCondition.RareHoneySalesCount: + return gameData.GetTotalSalesByFlavorWithRare(4); + case MissionCondition.CheeseSalesCount: + return gameData.GetTotalSalesByFlavor(5); + case MissionCondition.RareCheeseSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(5); + case MissionCondition.SoysourceSalesCount: + return gameData.GetTotalSalesByFlavor(6); + case MissionCondition.RareSoysourceSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(6); + case MissionCondition.StrawberrySalesCount: + return gameData.GetTotalSalesByFlavor(7); + case MissionCondition.RareStrawberrySalesCount: + return gameData.GetTotalSalesByFlavorWithRare(7); + case MissionCondition.GreenteaSalesCount: + return gameData.GetTotalSalesByFlavor(8); + case MissionCondition.RareGreenteaSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(8); + case MissionCondition.ChocolateSalesCount: + return gameData.GetTotalSalesByFlavor(9); + case MissionCondition.RareChocolateSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(9); + case MissionCondition.NoriSaltSalesCount: + return gameData.GetTotalSalesByFlavor(10); + case MissionCondition.RareNoriSaltSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(10); + case MissionCondition.ButterSoysourceSalesCount: + return gameData.GetTotalSalesByFlavor(11); + case MissionCondition.RareButterSoysourceSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(11); + case MissionCondition.PepperCheeseSalesCount: + return gameData.GetTotalSalesByFlavor(12); + case MissionCondition.RarePepperCheeseSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(12); + case MissionCondition.SaltCaramelSalesCount: + return gameData.GetTotalSalesByFlavor(13); + case MissionCondition.RareSaltCaramelSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(13); + case MissionCondition.NoriButterSalesCount: + return gameData.GetTotalSalesByFlavor(14); + case MissionCondition.RareNoriButterSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(14); + case MissionCondition.MilkChocolateSalesCount: + return gameData.GetTotalSalesByFlavor(15); + case MissionCondition.RareMilkChocolateSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(15); + case MissionCondition.CaramelCheeseSalesCount: + return gameData.GetTotalSalesByFlavor(16); + case MissionCondition.RareCaramelCheeseSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(16); + case MissionCondition.HoneyButterSalesCount: + return gameData.GetTotalSalesByFlavor(17); + case MissionCondition.RareHoneyButterSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(17); + case MissionCondition.GreenteaMilkSalesCount: + return gameData.GetTotalSalesByFlavor(18); + case MissionCondition.RareGreenteaMilkSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(18); + case MissionCondition.StrawberryChocolaSalesCount: + return gameData.GetTotalSalesByFlavor(19); + case MissionCondition.RareStrawberryChocolateSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(19); + case MissionCondition.NoriSoysourceSalesCount: + return gameData.GetTotalSalesByFlavor(20); + case MissionCondition.RareNoriSoysourceSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(20); + case MissionCondition.SaltButterSalesCount: + return gameData.GetTotalSalesByFlavor(21); + case MissionCondition.RareSaltButterSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(21); + case MissionCondition.StrawberryMilkSalesCount: + return gameData.GetTotalSalesByFlavor(22); + case MissionCondition.RareStrawberryMilkSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(22); + case MissionCondition.SaltChocolateSalesCount: + return gameData.GetTotalSalesByFlavor(23); + case MissionCondition.RareSaltChocolateSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(23); + case MissionCondition.ChocolateGreenteaSalesCount: + return gameData.GetTotalSalesByFlavor(24); + case MissionCondition.RareChocolateGreenteaSalesCount: + return gameData.GetTotalSalesByFlavorWithRare(24); + default: + return 0; + } + } + + private int GetDailyProgressValue(MissionData missionData) + { + var gameData = GameDataManager.GameData; + switch (missionData.Condition) + { + case MissionCondition.CornCount: + return gameData.DailyTotalAddCornSeed; + case MissionCondition.CustomerCount: // タップor来客した数 + return gameData.DailyTotalCustomerCount; + case MissionCondition.SalesCount: // 売った数 + return gameData.DailyTotalSales; + case MissionCondition.RareSalesCount: // レアを売った数 + return gameData.DailyRareTotalSales; + case MissionCondition.RecipeCount: // レシピの数 + return gameData.DailyRecipeGetCount; + case MissionCondition.CoinConsumeCount: // コイン消費数 + return gameData.DailyTotalSubCoin; + case MissionCondition.BulkOrderDeliveredCount: + return gameData.DailyBulkOrderDeliveredCount; + case MissionCondition.SaltSalesCount: + return gameData.GetDailyTotalSalesByFlavor(1); + case MissionCondition.RareSaltSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(1); + case MissionCondition.CaramelSalesCount: + return gameData.GetDailyTotalSalesByFlavor(2); + case MissionCondition.RareCaramelSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(2); + case MissionCondition.PepperSalesCount: + return gameData.GetDailyTotalSalesByFlavor(3); + case MissionCondition.RarePepperSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(3); + case MissionCondition.HoneySalesCount: + return gameData.GetDailyTotalSalesByFlavor(4); + case MissionCondition.RareHoneySalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(4); + case MissionCondition.CheeseSalesCount: + return gameData.GetDailyTotalSalesByFlavor(5); + case MissionCondition.RareCheeseSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(5); + case MissionCondition.SoysourceSalesCount: + return gameData.GetDailyTotalSalesByFlavor(6); + case MissionCondition.RareSoysourceSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(6); + case MissionCondition.StrawberrySalesCount: + return gameData.GetDailyTotalSalesByFlavor(7); + case MissionCondition.RareStrawberrySalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(7); + case MissionCondition.GreenteaSalesCount: + return gameData.GetDailyTotalSalesByFlavor(8); + case MissionCondition.RareGreenteaSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(8); + case MissionCondition.ChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavor(9); + case MissionCondition.RareChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(9); + case MissionCondition.NoriSaltSalesCount: + return gameData.GetDailyTotalSalesByFlavor(10); + case MissionCondition.RareNoriSaltSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(10); + case MissionCondition.ButterSoysourceSalesCount: + return gameData.GetDailyTotalSalesByFlavor(11); + case MissionCondition.RareButterSoysourceSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(11); + case MissionCondition.PepperCheeseSalesCount: + return gameData.GetDailyTotalSalesByFlavor(12); + case MissionCondition.RarePepperCheeseSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(12); + case MissionCondition.SaltCaramelSalesCount: + return gameData.GetDailyTotalSalesByFlavor(13); + case MissionCondition.RareSaltCaramelSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(13); + case MissionCondition.NoriButterSalesCount: + return gameData.GetDailyTotalSalesByFlavor(14); + case MissionCondition.RareNoriButterSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(14); + case MissionCondition.MilkChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavor(15); + case MissionCondition.RareMilkChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(15); + case MissionCondition.CaramelCheeseSalesCount: + return gameData.GetDailyTotalSalesByFlavor(16); + case MissionCondition.RareCaramelCheeseSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(16); + case MissionCondition.HoneyButterSalesCount: + return gameData.GetDailyTotalSalesByFlavor(17); + case MissionCondition.RareHoneyButterSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(17); + case MissionCondition.GreenteaMilkSalesCount: + return gameData.GetDailyTotalSalesByFlavor(18); + case MissionCondition.RareGreenteaMilkSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(18); + case MissionCondition.StrawberryChocolaSalesCount: + return gameData.GetDailyTotalSalesByFlavor(19); + case MissionCondition.RareStrawberryChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(19); + case MissionCondition.NoriSoysourceSalesCount: + return gameData.GetDailyTotalSalesByFlavor(20); + case MissionCondition.RareNoriSoysourceSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(20); + case MissionCondition.SaltButterSalesCount: + return gameData.GetDailyTotalSalesByFlavor(21); + case MissionCondition.RareSaltButterSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(21); + case MissionCondition.StrawberryMilkSalesCount: + return gameData.GetDailyTotalSalesByFlavor(22); + case MissionCondition.RareStrawberryMilkSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(22); + case MissionCondition.SaltChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavor(23); + case MissionCondition.RareSaltChocolateSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(23); + case MissionCondition.ChocolateGreenteaSalesCount: + return gameData.GetDailyTotalSalesByFlavor(24); + case MissionCondition.RareChocolateGreenteaSalesCount: + return gameData.GetDailyTotalSalesByFlavorWithRare(24); default: return 0; } diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionView.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionView.cs index 768faba2..76f94673 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionView.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionView.cs @@ -20,6 +20,7 @@ public class MissionView : MonoBehaviour public void SetData(MissionData missionData, int curentValue) { coinText.text = missionData.reward.ToString(); + missionText.text = missionData.text; progressBar.value = Mathf.InverseLerp(0, missionData.count, curentValue); progressText.text = string.Format(progressFormat, curentValue, missionData.count); } diff --git a/popcorn/Assets/MyGame/Scripts/Const.cs b/popcorn/Assets/MyGame/Scripts/Const.cs index 1516bded..6dd6efe4 100644 --- a/popcorn/Assets/MyGame/Scripts/Const.cs +++ b/popcorn/Assets/MyGame/Scripts/Const.cs @@ -14,6 +14,7 @@ public static class Const { public static readonly int SpecialCategory = 9999; public static readonly int NotSetMaterialId = 0; public static readonly string RedColorString = "#fb6346"; + public static readonly int DailyMissionResetOffset = 0; // tag public static readonly string GameDataTag = "GameData"; diff --git a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs index 4d728563..5167a387 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs @@ -139,28 +139,61 @@ public sealed class GameData { public int TotalCustomerCount { get; private set; } [DataMember(Name = "Data1005")] public List TotalSalesList { get; private set; } + [DataMember(Name = "Data1006")] + public int BulkOrderDeliveredCount; public int TotalSales => TotalSalesList.Sum(data => data.Stock); public int RareTotalSales => TotalSalesList.Where(data => data.Rarity != ProductRarity.Normal).Sum(data => data.Stock); + + // daily mission + [DataMember(Name = "Data2001")] + public long lastDailyMissionSetTime = DateTime.MinValue.ToBinary(); + [DataMember(Name = "Data2002")] + public int[] dailyMissionIdArray; + [DataMember(Name = "Data2003")] + public int[] dailyMissionAchievedIdArray; + [DataMember(Name = "Data2004")] + public bool dailyMissionCompleted; + + // [DataMember(Name = "Data2100")] + [DataMember(Name = "Data2101")] + public int DailyTotalAddCoin { get; private set; } + [DataMember(Name = "Data2102")] + public int DailyTotalSubCoin { get; private set; } + [DataMember(Name = "Data2103")] + public int DailyTotalAddCornSeed { get; private set; } + [DataMember(Name = "Data2104")] + public int DailyTotalCustomerCount { get; private set; } + [DataMember(Name = "Data2105")] + public List DailyTotalSalesList { get; private set; } + [DataMember(Name = "Data2106")] + public int DailyRecipeGetCount; + [DataMember(Name = "Data2107")] + public int DailyBulkOrderDeliveredCount; + public int DailyTotalSales => DailyTotalSalesList.Sum(data => data.Stock); + public int DailyRareTotalSales => DailyTotalSalesList.Where(data => data.Rarity != ProductRarity.Normal).Sum(data => data.Stock); private void ChangeCornSeed(int value) { if (cornSeed < value) { TotalAddCornSeed += value - cornSeed; + DailyTotalAddCornSeed += value - cornSeed; } cornSeed = value; } private void ChangeCoin(int value) { - Debug.Log($"{coin} {value}"); + // Debug.Log($"{coin} {value}"); if (coin < value) { TotalAddCoin += value - coin; + DailyTotalAddCoin += value - coin; } else { TotalSubCoin += coin - value; + DailyTotalSubCoin += coin - value; } coin = value; } @@ -168,31 +201,70 @@ public sealed class GameData { public void AddCustomerCount(int value) { TotalCustomerCount += value; + DailyTotalCustomerCount += value; } public void AddSalesCount(int id, int stock, ProductRarity rarity) { OrderConditionCount += stock; - if (TotalSalesList.FirstOrDefault(x => x.Rarity == rarity) is ProductStockData stockData) + if (!(TotalSalesList.FirstOrDefault(x => x.Rarity == rarity) is ProductStockData stockData)) { - stockData.Stock += stock; + stockData = new ProductStockData {FlavorId = id, Rarity = rarity, Stock = 0}; + TotalSalesList.Add(stockData); } - else + stockData.Stock += stock; + + if (!(DailyTotalSalesList.FirstOrDefault(x => x.Rarity == rarity) is ProductStockData dailyStockData)) { - TotalSalesList.Add(new ProductStockData{FlavorId = id, Rarity = rarity, Stock = stock}); + dailyStockData = new ProductStockData {FlavorId = id, Rarity = rarity, Stock = 0}; + DailyTotalSalesList.Add(dailyStockData); } + dailyStockData.Stock += stock; } public int GetTotalSalesByFlavor(int id) { return TotalSalesList.Where(data => data.FlavorId == id).Sum(data => data.Stock); } + + public int GetTotalSalesByFlavorWithRare(int id) + { + return TotalSalesList.Where(data => data.FlavorId == id && data.Rarity != ProductRarity.Normal).Sum(data => data.Stock); + } + + public int GetDailyTotalSalesByFlavor(int id) + { + return DailyTotalSalesList.Where(data => data.FlavorId == id).Sum(data => data.Stock); + } + + public int GetDailyTotalSalesByFlavorWithRare(int id) + { + return DailyTotalSalesList.Where(data => data.FlavorId == id && data.Rarity != ProductRarity.Normal).Sum(data => data.Stock); + } + public void ResetDailyTotalCount() + { + DailyTotalAddCoin = 0; + DailyTotalSubCoin = 0; + DailyTotalAddCornSeed = 0; + DailyTotalCustomerCount = 0; + DailyTotalSalesList.Clear(); + DailyRecipeGetCount = 0; + DailyBulkOrderDeliveredCount = 0; + } + public void AddTastingCustomerCount(int value) { TastingCount += Mathf.FloorToInt(value / 2f); } + public TimeSpan GetDailyMissionLimitTime() + { + return DateTime.FromBinary(lastDailyMissionSetTime).ToLocalTime().AddHours(Const.DailyMissionResetOffset).Date + .AddDays(1).AddHours(-Const.DailyMissionResetOffset) + .Subtract(DateTime.UtcNow.ToLocalTime()); + } + // public void ChangeAvatar(AvatarData avatarData){ // newAvatarIdList.Remove(avatarData.id); // } @@ -253,6 +325,9 @@ public sealed class GameData { AchievedMission = achievedMission?.ToList() ?? new List(); CompletedProductList = CompletedProductList ?? new List(); DeliveredOrder = deliveredOrder?.ToList() ?? new List(); + dailyMissionIdArray = dailyMissionIdArray ?? new int[0]; + dailyMissionAchievedIdArray = dailyMissionAchievedIdArray ?? new int[0]; + DailyTotalSalesList = DailyTotalSalesList ?? new List(); } private Dictionary ArrayToDictionary(KeyValueOfintint[] array){ var dictionary = new Dictionary(); diff --git a/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs b/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs index ca387dcd..ffe16dcc 100644 --- a/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs +++ b/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs @@ -55,7 +55,55 @@ public enum MissionCondition RareSalesCount = 4, RecipeCount = 5, CoinConsumeCount = 6, - SaltSalesCount = 7, + BulkOrderDeliveredCount = 7, + SaltSalesCount = 8, + RareSaltSalesCount = 9, + CaramelSalesCount = 10, + RareCaramelSalesCount = 11, + PepperSalesCount = 12, + RarePepperSalesCount = 13, + HoneySalesCount = 14, + RareHoneySalesCount = 15, + CheeseSalesCount = 16, + RareCheeseSalesCount = 17, + SoysourceSalesCount = 18, + RareSoysourceSalesCount = 19, + StrawberrySalesCount = 20, + RareStrawberrySalesCount = 21, + GreenteaSalesCount = 22, + RareGreenteaSalesCount = 23, + ChocolateSalesCount = 24, + RareChocolateSalesCount = 25, + NoriSaltSalesCount = 26, + RareNoriSaltSalesCount = 27, + ButterSoysourceSalesCount = 28, + RareButterSoysourceSalesCount = 29, + PepperCheeseSalesCount = 30, + RarePepperCheeseSalesCount = 31, + SaltCaramelSalesCount = 32, + RareSaltCaramelSalesCount = 33, + NoriButterSalesCount = 34, + RareNoriButterSalesCount = 35, + MilkChocolateSalesCount = 36, + RareMilkChocolateSalesCount = 37, + CaramelCheeseSalesCount = 38, + RareCaramelCheeseSalesCount = 39, + HoneyButterSalesCount = 40, + RareHoneyButterSalesCount = 41, + GreenteaMilkSalesCount = 42, + RareGreenteaMilkSalesCount = 43, + StrawberryChocolaSalesCount = 44, + RareStrawberryChocolateSalesCount = 45, + NoriSoysourceSalesCount = 46, + RareNoriSoysourceSalesCount = 47, + SaltButterSalesCount = 48, + RareSaltButterSalesCount = 49, + StrawberryMilkSalesCount = 50, + RareStrawberryMilkSalesCount = 51, + SaltChocolateSalesCount = 52, + RareSaltChocolateSalesCount = 53, + ChocolateGreenteaSalesCount = 54, + RareChocolateGreenteaSalesCount = 55, } public enum MissionRewardType @@ -103,6 +151,7 @@ public sealed class MissionData public int count; public int rewardType; public int reward; + public string text; public MissionCategory Category => (MissionCategory) category; public MissionCondition Condition => (MissionCondition) condition; public MissionRewardType RewardType => (MissionRewardType) rewardType;