仕入れワールド対応
This commit is contained in:
parent
9ceacd9400
commit
8b2f64ad3e
|
|
@ -45,27 +45,27 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData)
|
public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData)
|
||||||
{
|
{
|
||||||
SoundManager.Instance.ChangeVolumeUniqueBGM(.3f);
|
SoundManager.Instance.ChangeVolumeUniqueBGM(.3f);
|
||||||
var gameData = GameDataManager.GameData;
|
var globalGameData = GameDataManager.GameData;
|
||||||
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
||||||
|
|
||||||
if (!(gameData.ScrollGameStageScoreList.FirstOrDefault(data => data.Id == stageData.id) is ScrollGameScoreData stageScoreData))
|
if (!(globalGameData.ScrollGameStageScoreList.FirstOrDefault(data => data.Id == stageData.id) is ScrollGameScoreData stageScoreData))
|
||||||
{
|
{
|
||||||
stageScoreData = new ScrollGameScoreData
|
stageScoreData = new ScrollGameScoreData
|
||||||
{
|
{
|
||||||
Id = stageData.id,
|
Id = stageData.id,
|
||||||
Score = 0
|
Score = 0
|
||||||
};
|
};
|
||||||
gameData.ScrollGameStageScoreList.Add(stageScoreData);
|
globalGameData.ScrollGameStageScoreList.Add(stageScoreData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(gameData.ScrollGamePlaceScoreList.FirstOrDefault(data => data.Id == placeList[0].id) is ScrollGameScoreData placeScoreData))
|
if (!(globalGameData.ScrollGamePlaceScoreList.FirstOrDefault(data => data.Id == placeList[0].id) is ScrollGameScoreData placeScoreData))
|
||||||
{
|
{
|
||||||
placeScoreData = new ScrollGameScoreData
|
placeScoreData = new ScrollGameScoreData
|
||||||
{
|
{
|
||||||
Id = placeList[0].id,
|
Id = placeList[0].id,
|
||||||
Score = 0
|
Score = 0
|
||||||
};
|
};
|
||||||
gameData.ScrollGamePlaceScoreList.Add(placeScoreData);
|
globalGameData.ScrollGamePlaceScoreList.Add(placeScoreData);
|
||||||
}
|
}
|
||||||
|
|
||||||
scoreText.text = score.ToString();
|
scoreText.text = score.ToString();
|
||||||
|
|
@ -111,7 +111,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
}
|
}
|
||||||
|
|
||||||
materialAmountText.text = $"×{amount}";
|
materialAmountText.text = $"×{amount}";
|
||||||
Shopping.AddItem(shopData, amount);
|
Shopping.AddItem(shopData, amount, globalGameData.CurrentCityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
var customizeDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopCustomizeData>(Const.ShopCustomizeDataSheet);
|
var customizeDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopCustomizeData>(Const.ShopCustomizeDataSheet);
|
||||||
|
|
@ -127,12 +127,12 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
// 獲得処理
|
// 獲得処理
|
||||||
if (placeData.recipeId != 0)
|
if (placeData.recipeId != 0)
|
||||||
{
|
{
|
||||||
if (gameData.MyRecipes.Contains(placeData.recipeId))
|
if (globalGameData.MyRecipes.Contains(placeData.recipeId))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
gameData.MyRecipes = new List<int>(gameData.MyRecipes){placeData.recipeId}.ToArray();
|
globalGameData.MyRecipes = new List<int>(globalGameData.MyRecipes){placeData.recipeId}.ToArray();
|
||||||
gameData.DailyRecipeGetCount++;
|
globalGameData.DailyRecipeGetCount++;
|
||||||
var shopData = shopDataList.First(data => data.itemId == placeData.recipeId && data.Category == ItemCategory.Recipe);
|
var shopData = shopDataList.First(data => data.itemId == placeData.recipeId && data.Category == ItemCategory.Recipe);
|
||||||
// progressList.Add((shopData.Name, shopData.GetPrefab(), placeData.NeedScore, true));
|
// progressList.Add((shopData.Name, shopData.GetPrefab(), placeData.NeedScore, true));
|
||||||
progressList.Add((shopData.Name, recipeMalaImagePrefab, placeData.NeedScore, true));
|
progressList.Add((shopData.Name, recipeMalaImagePrefab, placeData.NeedScore, true));
|
||||||
|
|
@ -148,7 +148,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
var nextAchievement = sortedPlaceList.FirstOrDefault(data => data.NeedScore > placeScoreData.Score);
|
var nextAchievement = sortedPlaceList.FirstOrDefault(data => data.NeedScore > placeScoreData.Score);
|
||||||
if (nextAchievement != null)
|
if (nextAchievement != null)
|
||||||
{
|
{
|
||||||
if (nextAchievement.recipeId != 0 && !gameData.MyRecipes.Contains(nextAchievement.recipeId))
|
if (nextAchievement.recipeId != 0 && !globalGameData.MyRecipes.Contains(nextAchievement.recipeId))
|
||||||
{
|
{
|
||||||
var shopData = shopDataList.First(data => data.itemId == nextAchievement.recipeId && data.Category == ItemCategory.Recipe);
|
var shopData = shopDataList.First(data => data.itemId == nextAchievement.recipeId && data.Category == ItemCategory.Recipe);
|
||||||
// progressList.Add((shopData.Name, shopData.GetPrefab(), nextAchievement.NeedScore, true));
|
// progressList.Add((shopData.Name, shopData.GetPrefab(), nextAchievement.NeedScore, true));
|
||||||
|
|
|
||||||
|
|
@ -18,30 +18,31 @@ public class Shopping : MonoBehaviour
|
||||||
changeCoinSubject.AddTo(this);
|
changeCoinSubject.AddTo(this);
|
||||||
|
|
||||||
SoundManager.Instance.PlayBGM("bgm_shopping");
|
SoundManager.Instance.PlayBGM("bgm_shopping");
|
||||||
var gameData = GameDataManager.GameData;
|
var globalGameData = GameDataManager.GameData;
|
||||||
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
|
|
||||||
// 一覧データ
|
// 一覧データ
|
||||||
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
||||||
|
|
||||||
// tutorial 所持金が指定アイテムの金額以上かどうかチェック
|
// tutorial 所持金が指定アイテムの金額以上かどうかチェック
|
||||||
var isTutorial = false;
|
var isTutorial = false;
|
||||||
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Shopping))
|
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.Shopping))
|
||||||
{
|
{
|
||||||
if (gameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10))
|
if (cityGameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10))
|
||||||
{
|
{
|
||||||
isTutorial = true;
|
isTutorial = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
CoinManager.Instance.ChangeCoin(cityGameData.Coin);
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(globalGameData.ViewedShopLevel, cityGameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
HeartMeter.Instance.FulledHeart
|
HeartMeter.Instance.FulledHeart
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
ShopLevelUp.ShowDialog(gameData.ViewedShopLevel + 1);
|
ShopLevelUp.ShowDialog(globalGameData.ViewedShopLevel + 1);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
GameDataObserver.Instance.HeartObserver
|
GameDataObserver.Instance.HeartObserver
|
||||||
|
|
@ -76,11 +77,11 @@ public class Shopping : MonoBehaviour
|
||||||
ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), amount =>
|
ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), amount =>
|
||||||
{
|
{
|
||||||
// アイテムを増やす
|
// アイテムを増やす
|
||||||
AddItem(shopData, amount);
|
AddItem(shopData, amount, globalGameData.CurrentCityId);
|
||||||
itemView.SetStockCount(GetItemAmount(shopData));
|
itemView.SetStockCount(GetItemAmount(shopData));
|
||||||
CoinManager.Instance.SubCoin(shopData.price * amount);
|
CoinManager.Instance.SubCoin(shopData.price * amount);
|
||||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
cityGameData.Coin = CoinManager.Instance.OwnCoin;
|
||||||
changeCoinSubject.OnNext(gameData.Coin);
|
changeCoinSubject.OnNext(cityGameData.Coin);
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
|
|
||||||
if (isTutorial)
|
if (isTutorial)
|
||||||
|
|
@ -88,7 +89,7 @@ public class Shopping : MonoBehaviour
|
||||||
TutorialManager.Instance.ShowTutorialConversation(8, () =>
|
TutorialManager.Instance.ShowTutorialConversation(8, () =>
|
||||||
{
|
{
|
||||||
isTutorial = false;
|
isTutorial = false;
|
||||||
gameData.FinishedFlags |= TutorialFlag.Shopping;
|
globalGameData.FinishedFlags |= TutorialFlag.Shopping;
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -103,7 +104,7 @@ public class Shopping : MonoBehaviour
|
||||||
ShopItemExchangeView.ShowDialog(shopData, () =>
|
ShopItemExchangeView.ShowDialog(shopData, () =>
|
||||||
{
|
{
|
||||||
// アイテムを増やす
|
// アイテムを増やす
|
||||||
AddItem(shopData, 1);
|
AddItem(shopData, 1, globalGameData.CurrentCityId);
|
||||||
itemView.SetStockCount(GetItemAmount(shopData));
|
itemView.SetStockCount(GetItemAmount(shopData));
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
recipeNotifyIcon.SetActive(CheckEarnedRecipe());
|
recipeNotifyIcon.SetActive(CheckEarnedRecipe());
|
||||||
|
|
@ -141,49 +142,49 @@ public class Shopping : MonoBehaviour
|
||||||
|
|
||||||
private static int GetItemAmount(ShopData shopData)
|
private static int GetItemAmount(ShopData shopData)
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
|
||||||
switch (shopData.Category)
|
switch (shopData.Category)
|
||||||
{
|
{
|
||||||
case ItemCategory.Material:
|
case ItemCategory.Material:
|
||||||
return gameData.Material.Find(data => data.Id == shopData.itemId)?.Amount ?? 0;
|
return GameDataManager.GetCurrentCityGameData().Material.Find(data => data.Id == shopData.itemId)?.Amount ?? 0;
|
||||||
case ItemCategory.Recipe:
|
case ItemCategory.Recipe:
|
||||||
return gameData.MyRecipes.Contains(shopData.itemId) ? 1 : 0;
|
return GameDataManager.GameData.MyRecipes.Contains(shopData.itemId) ? 1 : 0;
|
||||||
case ItemCategory.Pan:
|
case ItemCategory.Pan:
|
||||||
return gameData.Pans.Contains(shopData.itemId) ? 1 : 0;
|
return GameDataManager.GameData.Pans.Contains(shopData.itemId) ? 1 : 0;
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AddItem(ShopData shopData, int amount)
|
public static void AddItem(ShopData shopData, int amount, int cityId)
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCityGameData(cityId);
|
||||||
|
var globalGameData = GameDataManager.GameData;
|
||||||
switch (shopData.Category)
|
switch (shopData.Category)
|
||||||
{
|
{
|
||||||
case ItemCategory.Material:
|
case ItemCategory.Material:
|
||||||
var index = gameData.Material.FindIndex(x => x.Id == shopData.itemId);
|
var index = cityGameData.Material.FindIndex(x => x.Id == shopData.itemId);
|
||||||
if (index == -1)
|
if (index == -1)
|
||||||
{
|
{
|
||||||
index = gameData.Material.Count;
|
index = cityGameData.Material.Count;
|
||||||
gameData.Material.Add(new MaterialData
|
cityGameData.Material.Add(new MaterialData
|
||||||
{
|
{
|
||||||
Id = shopData.itemId,
|
Id = shopData.itemId,
|
||||||
Amount = 0
|
Amount = 0
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
gameData.Material[index].Amount += amount;
|
cityGameData.Material[index].Amount += amount;
|
||||||
break;
|
break;
|
||||||
case ItemCategory.Recipe:
|
case ItemCategory.Recipe:
|
||||||
if (!gameData.MyRecipes.Contains(shopData.itemId))
|
if (!globalGameData.MyRecipes.Contains(shopData.itemId))
|
||||||
{
|
{
|
||||||
gameData.MyRecipes = new List<int>(gameData.MyRecipes){shopData.itemId}.ToArray();
|
globalGameData.MyRecipes = new List<int>(globalGameData.MyRecipes){shopData.itemId}.ToArray();
|
||||||
gameData.DailyRecipeGetCount++;
|
globalGameData.DailyRecipeGetCount++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ItemCategory.Pan:
|
case ItemCategory.Pan:
|
||||||
if (!gameData.Pans.Contains(shopData.itemId))
|
if (!globalGameData.Pans.Contains(shopData.itemId))
|
||||||
{
|
{
|
||||||
gameData.Pans = new List<int>(gameData.Pans){shopData.itemId}.ToArray();
|
globalGameData.Pans = new List<int>(globalGameData.Pans){shopData.itemId}.ToArray();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue