GameData追加 & コインとコーンrename
This commit is contained in:
parent
07eefe472d
commit
eba9c17b55
|
|
@ -52,10 +52,10 @@ public class CornField : MonoBehaviour
|
|||
|
||||
// データ
|
||||
var gameData = GameDataManager.GameData;
|
||||
CoinManager.Instance.ChangeCoin(gameData.coin);
|
||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||
HeartMeter.Instance.Initialize();
|
||||
HeartMeter.Instance.SetHeart(gameData.Heart);
|
||||
counterView.Initialize(gameData.cornSeed);
|
||||
counterView.Initialize(gameData.CornSeed);
|
||||
SetData();
|
||||
|
||||
// 畑リセット
|
||||
|
|
@ -167,7 +167,7 @@ public class CornField : MonoBehaviour
|
|||
VibrationManager.Instance.PlayVibrationOnce();
|
||||
var harvestCount = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.FieldCenter && x.level == (int)progressData.Level)?.harvested ?? 1;
|
||||
var harvestedCorn = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel)?.harvested ?? 20;
|
||||
gameData.cornSeed += harvestedCorn * harvestCount;
|
||||
gameData.CornSeed += harvestedCorn * harvestCount;
|
||||
var seedlingTransform = seedling.transform;
|
||||
|
||||
var harvestEffect = Instantiate(harvestEffectPrefab, seedlingTransform);
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
|||
gameData.PlantLineDataList.Add(new PlantLineData(type, CornFieldRank.Rank1));
|
||||
}
|
||||
CoinManager.Instance.SubCoin(price);
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
GameDataManager.SaveGameData();
|
||||
}
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
|||
var gameData = GameDataManager.GameData;
|
||||
gameData.MachineLevel++;
|
||||
CoinManager.Instance.SubCoin(price);
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
GameDataManager.SaveGameData();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class DebugOptionManager : MonoBehaviour
|
|||
};
|
||||
gameData.SeedlingDataList = new List<SeedlingProgressData>();;
|
||||
gameData.MachineLevel = 1;
|
||||
gameData.cornSeed = 0;
|
||||
gameData.CornSeed = 0;
|
||||
}).AddTo(this);
|
||||
|
||||
resetMaterialButton.OnClickAsObservable().Subscribe(_ =>
|
||||
|
|
@ -100,10 +100,10 @@ public class DebugOptionManager : MonoBehaviour
|
|||
gameData.ShopStock.AddRange(Enumerable.Repeat(2, 10).ToList());
|
||||
}).AddTo(this);
|
||||
|
||||
coinCount.text = $"{gameData.coin}";
|
||||
coinCount.text = $"{gameData.Coin}";
|
||||
coinCount.OnValueChangedAsObservable().Subscribe(x =>
|
||||
{
|
||||
gameData.coin = Int32.Parse(x);
|
||||
gameData.Coin = Int32.Parse(x);
|
||||
}).AddTo(this);
|
||||
|
||||
heartCount.text = $"{gameData.Heart}";
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class KitchenManager : MonoBehaviour
|
|||
});
|
||||
|
||||
var gameData = GameDataManager.GameData;
|
||||
CoinManager.Instance.ChangeCoin(gameData.coin);
|
||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||
HeartMeter.Instance.Initialize();
|
||||
HeartMeter.Instance.SetHeart(gameData.Heart);
|
||||
|
||||
|
|
|
|||
|
|
@ -44,16 +44,14 @@ public class Market : MonoBehaviour
|
|||
orderSubject.AddTo(this);
|
||||
|
||||
var gameData = GameDataManager.GameData;
|
||||
CoinManager.Instance.ChangeCoin(gameData.coin);
|
||||
|
||||
var shopLevelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
||||
var shopLevelToCustomerList = shopLevelList.Select(shopLevel => (level:shopLevel.shopLevel, tenMinCustomer:shopLevel.customer));
|
||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||
HeartMeter.Instance.Initialize();
|
||||
HeartMeter.Instance.SetHeart(gameData.Heart);
|
||||
|
||||
// 在庫数表示
|
||||
stockView.SetStock(gameData.StorageTanks);
|
||||
var shopLevelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
||||
var shopLevelToCustomerList = shopLevelList.Select(shopLevel => (level:shopLevel.shopLevel, tenMinCustomer:shopLevel.customer));
|
||||
|
||||
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
||||
CheckAndFixStock();
|
||||
StockFlavorLog();
|
||||
|
||||
|
|
@ -222,7 +220,7 @@ public class Market : MonoBehaviour
|
|||
blueView.SellAction();
|
||||
// コイン獲得
|
||||
CoinManager.Instance.AddCoinWithEffect(coin, () => { });
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
gameData.Heart += customers.Count;
|
||||
GameDataManager.SaveGameData();
|
||||
shopState.Value = gameData.ShopStock.Count == 0 ? ShopState.Close : ShopState.Open;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public class ProductManagement : MonoBehaviour
|
|||
state.AddTo(this);
|
||||
state.Value = ManagementState.None;
|
||||
var gameData = GameDataManager.GameData;
|
||||
CoinManager.Instance.ChangeCoin(gameData.coin);
|
||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||
HeartMeter.Instance.Initialize();
|
||||
HeartMeter.Instance.SetHeart(gameData.Heart);
|
||||
|
||||
|
|
@ -84,7 +84,7 @@ public class ProductManagement : MonoBehaviour
|
|||
tankView.SetData(gameData.StorageTanks[tankView.TankNumber - 1]);
|
||||
tankView.SetState(TankState.Unlock);
|
||||
CoinManager.Instance.SubCoin(shopData.price);
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
GameDataManager.SaveGameData();
|
||||
// 次に大きいタンクの購入ボタンを表示
|
||||
if (tankView.TankNumber + 1 <= tankList.Count)
|
||||
|
|
|
|||
|
|
@ -45,13 +45,14 @@ public class RecipeDetailView : MonoBehaviour
|
|||
LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value);
|
||||
// 消費
|
||||
var gameData = GameDataManager.GameData;
|
||||
gameData.cornSeed -= data.MaterialList[0].amount;
|
||||
var flavorIndex1 = gameData.Material.FindIndex(x => x.Id == data.MaterialList[1].id);
|
||||
gameData.Material[flavorIndex1].Amount -= data.MaterialList[1].amount;
|
||||
if (data.GetMaterialCount() == 3)
|
||||
gameData.CornSeed -= data.MaterialList[0].amount;
|
||||
if (gameData.Material.FirstOrDefault(x => x.Id == data.MaterialList[1].id) is MaterialData material1)
|
||||
{
|
||||
var flavorIndex2 = gameData.Material.FindIndex(x => x.Id == data.MaterialList[2].id);
|
||||
gameData.Material[flavorIndex2].Amount -= data.MaterialList[2].amount;
|
||||
material1.Amount -= data.MaterialList[1].amount;
|
||||
}
|
||||
if (data.GetMaterialCount() == 3 && gameData.Material.FirstOrDefault(x => x.Id == data.MaterialList[2].id) is MaterialData material2)
|
||||
{
|
||||
material2.Amount -= data.MaterialList[2].amount;
|
||||
}
|
||||
GameDataManager.SaveGameData();
|
||||
TransitionManager.Instance.LoadScene(GameScenes.Cooking);
|
||||
|
|
@ -76,57 +77,34 @@ public class RecipeDetailView : MonoBehaviour
|
|||
flavorStock.text = string.Format(flavorStockFormat, shopStock + tankStock);
|
||||
flavorName.text = data.name;
|
||||
flavorPrice.text = data.price.ToString();
|
||||
cornAmountText.text = string.Format(cornAmountFormat, gameData.cornSeed, data.MaterialList[0].amount);
|
||||
cornAmountText.text = string.Format(cornAmountFormat, gameData.CornSeed, data.MaterialList[0].amount);
|
||||
|
||||
var flavor1Amount = 0;
|
||||
var flavorIndex1 = gameData.Material.FindIndex(x => x.Id == data.MaterialList[1].id);
|
||||
if (flavorIndex1 != -1)
|
||||
{
|
||||
flavor1Amount = gameData.Material[flavorIndex1].Amount;
|
||||
}
|
||||
var flavor1Amount = gameData.Material.FirstOrDefault(x => x.Id == data.MaterialList[1].id)?.Amount ?? 0;
|
||||
flavor1AmountText.text = string.Format(flavorAmountFormat, flavor1Amount, data.MaterialList[1].amount);
|
||||
|
||||
var flavor2Amount = 0;
|
||||
if (data.GetMaterialCount() == 3)
|
||||
{
|
||||
var flavorIndex2 = gameData.Material.FindIndex(x => x.Id == data.MaterialList[2].id);
|
||||
if (flavorIndex2 != -1)
|
||||
{
|
||||
flavor2Amount = gameData.Material[flavorIndex2].Amount;
|
||||
}
|
||||
flavor2View.SetActive(true);
|
||||
var flavor2Amount = gameData.Material.FirstOrDefault(x => x.Id == data.MaterialList[2].id)?.Amount ?? 0;
|
||||
flavor2AmountText.text = string.Format(flavorAmountFormat, flavor2Amount, data.MaterialList[2].amount);
|
||||
}
|
||||
else
|
||||
{
|
||||
flavor2View.SetActive(false);
|
||||
}
|
||||
flavor2View.SetActive(data.GetMaterialCount() == 3);
|
||||
}
|
||||
|
||||
private bool CheckAmount(ProductData data)
|
||||
{
|
||||
var flag = true;
|
||||
var gameData = GameDataManager.GameData;
|
||||
if (gameData.cornSeed < data.MaterialList[0].amount)
|
||||
if (gameData.CornSeed < data.MaterialList[0].amount)
|
||||
{
|
||||
flag = false;
|
||||
cornAmountText.color = Color.red;
|
||||
}
|
||||
var flavorIndex1 = gameData.Material.FindIndex(x => x.Id == data.MaterialList[1].id);
|
||||
if (flavorIndex1 == -1 || gameData.Material[flavorIndex1].Amount < data.MaterialList[1].amount)
|
||||
if (gameData.Material.Exists(x => x.Id == data.MaterialList[1].id && x.Amount < data.MaterialList[1].amount))
|
||||
{
|
||||
flag = false;
|
||||
flavor1AmountText.color = Color.red;
|
||||
}
|
||||
if (data.GetMaterialCount() == 3)
|
||||
{
|
||||
var flavorIndex2 = gameData.Material.FindIndex(x => x.Id == data.MaterialList[2].id);
|
||||
if (flavorIndex2 == -1 || gameData.Material[flavorIndex2].Amount < data.MaterialList[2].amount)
|
||||
if (data.GetMaterialCount() == 3 && gameData.Material.Exists(x => x.Id == data.MaterialList[2].id && x.Amount < data.MaterialList[2].amount))
|
||||
{
|
||||
flag = false;
|
||||
flavor2AmountText.color = Color.red;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class Shopping : MonoBehaviour
|
|||
changeCoinSubject.AddTo(this);
|
||||
|
||||
var gameData = GameDataManager.GameData;
|
||||
CoinManager.Instance.ChangeCoin(gameData.coin);
|
||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||
HeartMeter.Instance.Initialize();
|
||||
HeartMeter.Instance.SetHeart(gameData.Heart);
|
||||
|
||||
|
|
@ -39,8 +39,8 @@ public class Shopping : MonoBehaviour
|
|||
AddItem(shopData, amount);
|
||||
itemView.SetStockCount(GetItemAmount(shopData));
|
||||
CoinManager.Instance.SubCoin(shopData.price * amount);
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
changeCoinSubject.OnNext(gameData.coin);
|
||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
changeCoinSubject.OnNext(gameData.Coin);
|
||||
GameDataManager.SaveGameData();
|
||||
}).AddTo(itemView);
|
||||
// アイテム購入クリック購読
|
||||
|
|
|
|||
|
|
@ -37,10 +37,17 @@ public sealed class GameData {
|
|||
public int adCount;
|
||||
[DataMember(Name = "Data5")]
|
||||
public int stage = 1;
|
||||
|
||||
// [DataMember(Name = "Data6")]
|
||||
// public int avatarId = Const.DefaultAvatarId;
|
||||
[DataMember(Name = "Data7")]
|
||||
public int coin;
|
||||
private int coin;
|
||||
public int Coin
|
||||
{
|
||||
get => coin;
|
||||
set => ChangeCoin(value);
|
||||
}
|
||||
|
||||
// [DataMember(Name = "Data8")]
|
||||
// private int[] avatarIdArray;
|
||||
// public List<int> avatarIdList;
|
||||
|
|
@ -60,7 +67,12 @@ public sealed class GameData {
|
|||
[DataMember(Name = "Data15")]
|
||||
public List<SeedlingProgressData> SeedlingDataList = new List<SeedlingProgressData>();
|
||||
[DataMember(Name = "Data16")]
|
||||
public int cornSeed;
|
||||
private int cornSeed;
|
||||
public int CornSeed
|
||||
{
|
||||
get => cornSeed;
|
||||
set => ChangeCornSeed(value);
|
||||
}
|
||||
// Main
|
||||
// 所持レシピ
|
||||
[DataMember(Name = "Data17")]
|
||||
|
|
@ -84,6 +96,65 @@ public sealed class GameData {
|
|||
public ProductRefillMode RefillMode;
|
||||
// [DataMember(Name = "Data25")]
|
||||
|
||||
// mission
|
||||
[DataMember(Name = "Data1001")]
|
||||
public int TotalAddCoin { get; private set; }
|
||||
[DataMember(Name = "Data1002")]
|
||||
public int TotalSubCoin { get; private set; }
|
||||
[DataMember(Name = "Data1003")]
|
||||
public int TotalAddCornSeed { get; private set; }
|
||||
[DataMember(Name = "Data1004")]
|
||||
public int TotalCustomerCount { get; private set; }
|
||||
[DataMember(Name = "Data1005")]
|
||||
public List<ProductStockData> TotalSalesList { get; private set; }
|
||||
public int TotalSales => TotalSalesList.Sum(data => data.Stock);
|
||||
public int RareTotalSales => TotalSalesList.Where(data => data.Rarity != ProductRarity.Normal).Sum(data => data.Stock);
|
||||
|
||||
private void ChangeCornSeed(int value)
|
||||
{
|
||||
if (cornSeed < value)
|
||||
{
|
||||
TotalAddCornSeed += value - cornSeed;
|
||||
}
|
||||
cornSeed = value;
|
||||
}
|
||||
|
||||
private void ChangeCoin(int value)
|
||||
{
|
||||
Debug.Log($"{coin} {value}");
|
||||
if (coin < value)
|
||||
{
|
||||
TotalAddCoin += value - coin;
|
||||
}
|
||||
else
|
||||
{
|
||||
TotalSubCoin += coin - value;
|
||||
}
|
||||
coin = value;
|
||||
}
|
||||
|
||||
public void AddCustomerCount(int value)
|
||||
{
|
||||
TotalCustomerCount += value;
|
||||
}
|
||||
|
||||
public void AddSalesCount(int id, int stock, ProductRarity rarity)
|
||||
{
|
||||
if (TotalSalesList.FirstOrDefault(x => x.Rarity == rarity) is ProductStockData stockData)
|
||||
{
|
||||
stockData.Stock += stock;
|
||||
}
|
||||
else
|
||||
{
|
||||
TotalSalesList.Add(new ProductStockData{FlavorId = id, Rarity = rarity, Stock = stock});
|
||||
}
|
||||
}
|
||||
|
||||
public int GetTotalSalesByFlavor(int id)
|
||||
{
|
||||
return TotalSalesList.Where(data => data.FlavorId == id).Sum(data => data.Stock);
|
||||
}
|
||||
|
||||
// public void ChangeAvatar(AvatarData avatarData){
|
||||
// newAvatarIdList.Remove(avatarData.id);
|
||||
// }
|
||||
|
|
@ -123,6 +194,7 @@ public sealed class GameData {
|
|||
// lastAdRewardTimeList = lastAdRewardTimeArray == null ? new List<long>() : lastAdRewardTimeArray.ToList();
|
||||
ShopStock = shopStock?.ToList() ?? new List<int>();
|
||||
Pans = Pans ?? new int[0];
|
||||
TotalSalesList = TotalSalesList ?? new List<ProductStockData>();
|
||||
}
|
||||
private Dictionary<int, int> ArrayToDictionary(KeyValueOfintint[] array){
|
||||
var dictionary = new Dictionary<int, int>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue